0

컴퓨터에서 CPU 요청 데이터가 정확히 어떻게되는지 궁금합니다. 32 비트 아키텍처에서는 컴퓨터가 주소 버스에 대상을 배치하고 데이터 버스에 4 바이트를 수신한다고 생각했습니다. 최근에 컴퓨터에서 메모리 정렬을 읽었고 혼란스러워했습니다. 나는 CPU가 다중 4 개 주소가 아닌 2 배의 메모리를 읽어야한다는 것을 읽었다. 왜 그렇습니까? 주소 버스는 다중 주소가 아닌 4 개의 주소에 액세스 할 수있게합니다.컴퓨터가 컴퓨터에서 실제로 데이터를 요청하는 방법은 무엇입니까?

답변

3

주소 버스 자체는 32 비트 아키텍처에서도 일반적으로 32 비트 크기가 아닙니다. 예 : the Pentium's address bus was 29 bits. 펜티엄의 경우 전체 32 비트 범위를 가지므로 메모리의 각 슬롯은 8 바이트 폭을 의미합니다. 따라서 두 슬롯에 걸쳐있는 값을 읽는 것은 하나가 아닌 두 개의 읽기를 의미하며, 정렬은 발생하지 못하도록합니다.

다른 프로세서 (32 비트 Intel 아키텍처의 다른 구현 포함)에는 다른 메모리 액세스 워드 크기가 있지만 그 요점은 일반적인 것입니다.

+0

따라서 32 비트 폭 데이터 버스의 경우 주소 버스의 주소는 32 비트 슬롯만을 참조합니까? 나는 슬롯 폭이 데이터 버스 너비와 완전하게 독립적이라고 생각했다. add에 주소를두면 이해할 수 있습니다. 버스에서,이 바이트는 4 바이트 데이터 벡터를 형성하기 위해이 어드레스와 3 바이트 뒤에 바이트를 줄 것이다. 이 경우 슬롯은 1 바이트 길이가 될 것입니다. 일반적인 RAM의 경우 항상 그렇습니다. – L3Robot

+0

아니요, 많은 경우 펜티엄을 포함하여 가장 쉽게 링크를 찾을 수있는 예제를 포함하여 주소 버스에서 가장 적은 수를 생략합니다 비트를 사용하고 프로세서는 차이를 숨기기 위해 칩을 자르고 붙입니다. 또한 캐시 라인과 같은 것들은 종종 비슷하게 작동하지만 더 조잡하게 작동한다는 것을 지적해야합니다. 그래서 복합 구조는 때로는 더 큰 정렬로부터 이익을 얻을 수 있습니다. – Tommy