글
1장. 컴퓨터의 구조와 역사
책 정리/Windows 구조와 원리 그리고 Codes
2009. 11. 15. 20:06
- 16비트 마이크로 프로세서
16비트 데이터 버스를 의미하는 것이며, 데이터 전송을 위해 핀을 16개 사용한다는 뜻이다.
-
8086
- 16비트 CPU로서, 16비트 데이터 버스를 가지고 있지만 더 많은 메모리 엑세스를 위해 20비트 어드레스 버스를 가진다.
-
세그먼트 방식 도입 : 내부 레지스터는 모두 16비트의 크기를 가지므로 20비트의 크기(1MB 주소 사용 가능)를 그대로 사용은 할 수가 없어서...
segment(16-bit):offset(16-bit) -> 실제 주소사용시 16비트의 세그먼트값을 4비트 좌로 쉬프트하고 이를 offset과 더한다.
ex : 0xb1234 = b123h(segment) + 4(offset) 하지만, 한 물리 주소를 위한 여러 개의 segment:offset 쌍이 존재IP(Instruction Registe) : 실행될 명령어를 저장
PC(Program Counter) : 다음에 실행될 명령어를 가져올 메모리 주소를 저장
-
80836
-
- 32비트 프로세서. 시스템, 제어, 디버그 레지스터의 추가
-
시스템 레지스터( System Register )
- 보호모드에서의 프로세서 제어와 검사를 위한 목적
-
제어 레지스터(Control Register )
- CR0, CR2, CR3
-
디버그 레지스터
- 하드웨어 브레이크 포인터를 가능하게 하는 레지스터( 4개 까지 가능 )
- 해당 메모리 주소가 프로그램에 의해 액세스 되었을 때 프로그램이 멈추어 디버깅 루틴으로 제어가
넘어 갈 있도록 해준다.
-
TLB( Translation Lookaside Buffer ) 와 Test 레지스터
- 일정 개수 만큼의 변환 내용( 가상 메모리 - 실 메모리 주소 ) 을 이 버퍼에 보관하여 변환 시간을 줄여 줌
- 80386 이후의 마이크로프로세서는 이 TLB 내용에 대해 사용자가 직접 그 내용을 보거나 조작 가능, 이는 테스트 레지스터( Test Register )인 TR6, TR7에 의해 이루어진다.
-
TLB 제어
-
-
읽기 요청
- 검색하고자 하는 선형 주소 값을 TR6( bit 12 ~ 31 ) 에 쓰기
-
TR6의 C bit 를 1로 Set
- TR6의 M( bit4 ) 가 0 이면 검색 성공( TR6, TR7에 주소가 저장 된다 ), 1이면 실패.
-
쓰기 요청
-
- TR6, TR7에 쓰고자 하는 정보를 쓰고, T6레지스터의 C( bit 0 ) 을 0 으로 clear
-
-
80486 에서는 캐쉬 데이터를 사용자가 직접 제어 할 수 있도록 추가된 레지스터
-
TR3( cache data register )
- 캐쉬에 데이터를 쓰거나 읽을 때 캐쉬 한 라인에 포함 되어 있는 16byte의 데이터에 대한 창 역할
-
TR4( cache status test register )
- 캐쉬 쓰기 또는 읽기 작업
-
TR5( cache control test )
- 캐쉬의 세트와 라인을 선택, 캐쉬 제어
-
이 글은 스프링노트에서 작성되었습니다.
'책 정리 > Windows 구조와 원리 그리고 Codes' 카테고리의 다른 글
9장. 세그먼테이션 (0) | 2009.11.15 |
---|---|
8장. 메모리 관리 (0) | 2009.11.15 |
4장. 프로시저와 스택 구조 (0) | 2009.11.15 |
3장. 기계어의 구성 (0) | 2009.11.15 |
2장. 데이터의 표현과 메모리 구조 (0) | 2009.11.15 |