Word
과 Byte
주소 지정이 다른 점을 다른 사람이 설명 할 수 있습니까? 메모리 크기 등과 어떤 관련이 있습니까?단어로 주소를 지정할 수있는 주소와 바이트로 주소를 지정할 수있는 주소의 차이
답변
바이트는 저장소의 메모리 단위이며 메모리 칩은 이러한 바이트로 가득합니다. 메모리 단위는 주소 지정이 가능합니다. 그것이 우리가 기억을 사용할 수있는 유일한 방법입니다.
실제로 메모리는 바이트 주소 지정 만 가능합니다. 이진 주소는 항상 단일 바이트를 가리 킵니다.. 단어는 CPU의 데이터 버스 크기에 따라 바이트 – 2, 4, 8의 그룹입니다.
메모리 동작을 완전히 이해하려면 CPU의 다양한 레지스터와 RAM의 메모리 포트를 잘 알고 있어야합니다. 'MAR 메모리 주소 레지스터', 'MDR 메모리 데이터 레지스터', 'PC 프로그램 카운터 레지스터', 'MBR 메모리 버퍼 레지스터'를 알고 있다고 가정합니다. RAM에는 데이터/주소 용 32 비트, OPCODE 용 8 비트 메모리 포트가 있습니다.
CPU가 주소 xyz부터 한 단어 (예 : 4 바이트)를 읽길 원한다고 가정하십시오. CPU는 MAR에 주소를 넣고 메모리 판독 신호를 메모리 컨트롤러 칩에 보냅니다. 주소 및 읽기 신호를 수신하면 메모리 컨트롤러는 데이터 버스를 32 비트 포트에 연결하고 xyz 포트에서 MDR로 흘러 나가는 주소에서 시작하여 4 바이트를 연결합니다.
CPU가 다음 명령을 가져 오려면 PC 레지스터에 주소를 넣고 페치 신호를 메모리 컨트롤러로 보냅니다. 주소 및 패치 신호를 수신하면 메모리 컨트롤러는 데이터 버스를 8 비트 포트에 연결하고 수신 된 주소에 위치한 1 바이트 길이의 op 코드가 RAM에서 CPU의 MDR로 흘러갑니다.
그래서 우리는 특정 레지스터가 '메모리 주소 지정 가능'또는 '바이트 주소 지정 가능'이라는 것을 의미합니다. 이제 'word'2를 읽으려는 의도로 MAR에 바이너리로 10 진수 2를 넣으면 어떻게 될까요?
워드 2는 32 비트 컴퓨터의 바이트 4, 5, 6, 7을 의미합니다. 실제로 실제 메모리는 바이트 주소 지정 만 가능합니다. 따라서 '단어 주소 지정'을 처리하는 트릭이 있습니다.
MAR이 주소 버스에 배치되면 해당 32 비트가 32 개의 주소 라인 0-31에 각각 매핑되지 않습니다. 대신 MAR 비트 0은 버스 라인 2를 주소 지정하고 MAR 비트 1은 버스 라인 3을 주소 지정하는 방식으로 연결됩니다. MAR의 상위 2 비트는 2^32 이상의 워드 주소에만 필요하기 때문에 버려집니다. 32 비트 시스템에서는 유효하지 않습니다.
이 매핑을 사용하면 MAR이 1이면 버스에 4가 설정되고 MAR이 2이면 버스에 8이 놓입니다.
처음에는 조금 이해하기 어렵습니다. Andrew Tanenbaums의 'structured computer organization'에서 배웠습니다.
이 이미지는 쉽게 이해할 수 있도록해야합니다 http://i.stack.imgur.com/rpB7N.png
간단히 말해, 주소 지정 체계 바이트에서
•를 첫 번째 단어는 주소 0에서 시작하고, 두 번째 단어는 주소 4에서 시작
• 단어 주소 지정 체계에서 첫 번째 단어의 모든 바이트는 주소 0에 에 위치하며 두 번째 단어의 모든 바이트는 주소 1에 있습니다.
바이트 주소 지정 기능의 이점은 데이터를 한 번에 1 바이트 씩 처리하는 응용 프로그램을 고려할 때 분명합니다. 바이트 주소 지정이 가능한 시스템에서 단일 바이트에 액세스하려면 단일 주소를 발행하면됩니다. 16 비트 워드 어 드레서 블 시스템에서, 먼저 바이트를 포함하는 단어의 주소를 계산하고 그 단어를 가져온 다음 2 바이트 단어에서 바이트를 추출해야합니다. 바이트 추출 프로세스가 잘 이해되어 있지만 바이트에 직접 액세스하는 것보다 효율적이지 않습니다. 이러한 이유로 많은 최신 기계는 바이트 주소 지정이 가능합니다.
주소 지정 가능성은 자체 주소가있는 메모리 단위의 크기입니다. 또한 이웃에 영향을 미치지 않고 수정할 수있는 메모리 중 가장 작은 부분입니다.
예 : 바이트가 일반 8 비트이고 워드 크기 = 4 바이트 인 시스템. 단어로 주소를 지정할 수있는 컴퓨터 인 경우 int
의 두 번째 바이트 주소와 같은 것은 없습니다. 문자열 (예 : char str[]
과 같은 배열)을 처리하면 불편할 수 있습니다. 이는 함께 포장 된 문자를 저장하기 때문입니다. 단지 str[1]
을 수정하면 해당 단어를 포함하는 단어를로드하고 변경 사항을 적용하기 위해 몇 가지 쉬프트/및/또는 조작을 수행 한 다음 단어 저장을 수행합니다.
정렬되지 않은 단어로드/저장을 허용하지 않는 컴퓨터와 다릅니다 (단어 주소의 하위 2 비트는 0이어야 함). 그러한 기계는 일반적으로 바이트로드/저장 명령어를 가지고있다. 우리는 그것조차없는 기계에 대해서 이야기하고 있습니다.
CPU 주소에는 실제로 하위 비트가 포함될 수 있지만 항상 0이어야합니다 (또는 무시해야 함). 그러나 이들이 0인지 확인한 후 폐기 될 수 있으므로 메모리 시스템의 나머지 부분에서는 단어 주소 만 볼 수 있습니다. 두 개의 인접 단어는 1이 아닌 4 개의 주소를가집니다. 그러나 레지스터에 64k 개의 서로 다른 주소 만 저장할 수있는 16 비트 CPU에서는이 작업을 수행하지 않을 것입니다. 각각의 개별 CPU 주소는 하위 비트를 무시하는 대신 다른 2 바이트의 메모리를 참조합니다. 2B 워드 어 드레서 블 메모리는 바이트 주소 지정이 가능한 메모리가있는 64kiB 대신 128KB의 메모리 주소 지정을 가능하게합니다.
재미있는 사실 : ARM은 정렬되지 않은 워드로드의 셔플 제어로 낮은 2 비트 주소를 사용했습니다. (그러나 항상 바이트로드/저장 명령어를했다.)
은 참조 : 존재할 수 메모리 주소 비트
주 ,하지만하지 않습니다. 8 비트 바이트는 거의 보편적으로 표준입니다. (고대 컴퓨터는 때때로 더 큰 바이트를 가졌습니다. 역사 섹션의 wikipedia's Byte article을 참조하십시오.)
- 1. 대칭 적으로 주소를 지정할 수있는 행렬
- 2. 사용자가 차원을 지정할 수있는 배열을 어떻게 선언합니까?
- 3. TextMate에서 텍스트 서식을 다시 지정할 수있는 방법
- 4. svn에서 삭제 권한을 지정할 수있는 방법이 있습니까?
- 5. FROM을 지정할 수있는 SMS API는 무엇입니까?
- 6. sqlite에서 nvarchar에 지정할 수있는 최대 크기는 무엇입니까?
- 7. 자바 프로그램이들을 수있는 인터넷 주소를 알아내는 방법
- 8. 신뢰할 수있는 프록시 주소를 반환하는 웹 서비스
- 9. 배송 주소와 청구서 수신 주소를 레일에 주문하는 방법
- 10. Objective-C에서 산술 연산에 형식을 지정할 수있는 방법이 있습니까?
- 11. 사용자가 WiX를 사용하여 설치 경로를 지정할 수있는 UI를 어떻게 제공합니까?
- 12. PHP에서 사용할 클래스를 결정하는 유형을 지정할 수있는 인터페이스 만들기
- 13. 구글 클로저에 비교 기능을 지정할 수있는 contains 기능이 있습니까?
- 14. 프로그래밍 방식으로 텍스트를 편집하고 서식을 지정할 수있는 RTF 라이브러리
- 15. 대부분의 개발 플랫폼에서 작동하는 make 파일을 지정할 수있는 방법이 있습니까?
- 16. PL/SQL 패키지의 네임 스페이스를 지정할 수있는 방법이 있습니까?
- 17. ANYTHING을 예상 인수로 지정할 수있는 .NET mocking 프레임 워크는 무엇입니까?
- 18. 형식을 Null로 지정할 수있는 경우 Nullable을 사용하는 이유는 무엇입니까?
- 19. Nuget 패키지에서 제외 할 패키지 종속성을 지정할 수있는 기능이 추가되는
- 20. 여러 db 테이블에 태그를 지정할 수있는 태그 시스템 설계
- 21. Zend application.ini 구성 파일에 지정할 수있는 값 목록은 무엇입니까?
- 22. 는 LIKE 연산자에서 식을 지정할 수있는 방법 LIKE 연산자
- 23. 주어진 PowerShell에서 IP 주소와 서브넷에 지정된 브로드 캐스트 주소를 계산하십시오.
- 24. "To"주소를 .NET의 SMTP 메일 설정에 지정하십시오.
- 25. 프로그래밍 방식으로 주소를 만들 수있는 이메일 서비스가 있습니까?
- 26. jsp에서 클라이언트 컴퓨터의 MAC 주소를 얻을 수있는 방법
- 27. 네트워크 인터페이스의 IP 주소를 구성 할 수있는 파이썬 패키지가 있습니까?
- 28. 사용자가 읽을 수있는 형식 (파이썬)에 진수 MAC 주소를 변환
- 29. 도메인의 IMAP 또는 POP3 주소를 알 수있는 도구가 있습니까?
- 30. 주소를 문자열 상수
[바이트 대 단어 주소 지정 체계] (http://tams-www.informatik.uni-hamburg.de/applets/)를 참조하십시오. hades/webdemos/50-rtlib/40-memory/byte-vs-word.html) :> 바이트 및 단어 기반 주소 지정 체계의 데모. –