[완료] IA-32 에서 물리 메모리 공간이 4GB인 이유??
아무리 생각해봐도 왜 4GB가 나오는지 이해가 안됩니다.
인텔의 IA-32문서를 보니
In protected mode, the IA-32 architecture provides a normal physical address space of 4 GBytes (232 bytes). This is the address space that the processor can address on its address bus.라고 나와 있는데 내용이 물리 메모리 용량이 4GB라고 말하는 거 같은데 영어가 딸려서 그런지 이해가 안됩니다.
제가 메모리 용량 계산한 방법을 말씀드리겠습니다. 어디가 틀렸는지 알려주세요,,
어드레스가 32개면 총 주소갯수는 2^32= 4294967296 이 될 것이고,
데이타라인이 32개라면 4byte이므로, 주소 한개당 4byte용량을 할당할 수 있다고 생각했습니다.
4byte가 4294967296개라 생각되서
총 메모리 용량은 메모리 주소갯수*주소한개당 용량 = 4294967296*(4byte) = 16GB
라고 생각했습니다.;;;;
여기저기 문서를 찾아보니 선형메모리공간의 선형메모리를
10BIT | 10BIT | 12BIT 로 나눠서,
(2^10*(4BYTE))*2^10*2^12 = 4GB 계산하는 것이 나오던데 이건 가상 메모리로 물리주소 접근할 때 계산하는 것 같은데 물리 메모리 용량이 4GB라는 얘기는 아닌거 같고,,,, 머리가 혼란스럽습니다...ㅠㅠ
어드레스가 32개면 총
--
주소 한 개당 1 Byte...
주소 한 개당 1 Byte를 가리킵니다.
Data Width(Word)가 4 Bytes 라 하더라도,
주소는 1 Byte 를 기준으로 합니다.
====
( - -)a 이제는 학생으로 가장한 백수가 아닌 진짜 백수가 되어야겠다.
WORD는 CPU에서 한 번에
WORD는 CPU에서 한 번에 처리가 가능한 용량을 얘기합니다. x86을 예로 들면 최대 연산 단위가 4바이트죠. (MMX,SSE제외)
하지만 꼭 4바이트 단위로 접근해야 하는건 아니고 바이트 단위접근도 가능하거든요. 물론 구현상의 문제로 인해 4바이트 단위로 접근을 할 경우 베이스 주소가 0,4,8,12 식이 되어야 합니다. 2바이트 단위로 접근할 때는 0, 2, 4, 6, 8, 10, ... 식으로 되어야 하구요. 1바이트 단위 접근일 경우엔 이런 제약이 없습니다.
--
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
답변 감사합니다 ^^
오늘 오후나 되야 답글 달려 있을 줄 알았는데....잠을 안주무시는 분이 많군요^^
댓글 달기