1장. 컴퓨터의 구조와 역사

 

  • 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 제어

      • 읽기 요청

        1. 검색하고자 하는 선형 주소 값을 TR6( bit 12 ~ 31 ) 에 쓰기
        2. TR6의 C bit 를 1로 Set

        3. TR6의 M( bit4 )  가 0 이면 검색 성공( TR6, TR7에 주소가 저장 된다 ), 1이면 실패.
      • 쓰기 요청

        1. TR6, TR7에 쓰고자 하는 정보를 쓰고, T6레지스터의 C( bit 0 ) 을 0 으로 clear

 

  • 80486 에서는 캐쉬 데이터를 사용자가 직접 제어 할 수 있도록 추가된 레지스터

    • TR3( cache data register )

      • 캐쉬에 데이터를 쓰거나 읽을 때 캐쉬 한 라인에 포함 되어 있는 16byte의 데이터에 대한 창 역할
    • TR4( cache status test register )

      •  캐쉬 쓰기 또는 읽기 작업
    • TR5( cache control test )

      • 캐쉬의 세트와 라인을 선택, 캐쉬 제어

 

 

 

 

 

 

 

 

 

이 글은 스프링노트에서 작성되었습니다.

설정

트랙백

댓글