Blog | Tag | Local | Guest | Login | Write |  RSS
하하 한번 밀리기 시작하니깐 정신이 없군요.... 요즘 학교공부를 하면서 많이 느끼는 거지만 이론의 중요성을 많이 느낍니다. 이번학기에 컴구조, 운영체제, 데이터통신, 데이터구조와 선형대수까지 한꺼번에 듣고 있거든요(데구말고는 절대 재수강이 아닙니다.;;;;;;) 그래서 그런지 코팅과는 좀 거리가 생긴것 같아요 ㅋㅋㅋ 아무튼 요즘 이론강의를 들으면서 참 많이 배우는것 같습니다. 여러분들은 어떠신지요? 실습강의가 더 좋으신가요? 뭐 어느쪽에 치우치지 않는 강의가 좋겠지만요

 아무튼 이번에는 5번째 이야기 기본 컴퓨터의 구조와 설계중 2번째 이야기 컴퓨터 레지스터에 대해서 이야기 하고자 합니다. 

 컴퓨터 명령어는 보통 연속적인 메모리상에 위치하고 이것들이 한 번에 하나씩 순차적으로 수행이 됩니다. 따라서 다음 수행될 명령의 주소를 알아낼 수 있는 카운터같은 장치가 필요하겠죠 또한 제어 장치내에는 메모리에서 읽어온 명령어 코드를 저장할 수 있는 레지스터와 데이터를 조작하기 위한 프로세서 레지스터, 그리고 메모리의 주소를 갖고 있는 레지스터가 필요할 것입니다.  


위에 그림과 표에서 레지스터 구서오가 각 레지스터의 기능, 비트수를 확인할 수 있습니다.
 메모리 장치는 4096워드로 구성되어 있으며, 각 워드는 16비트입닏. 즉 피연산자의 주소를 위해 12비트가 필요하고 3비트는 명령어 코드를 나타내며 나머지 1비트가 직접 주소, 간접 주소를 구별하는 데 사용됩니다. 데이타 레지스터(DR)는 메모리에서 읽어온 피연산자를 저장하며, 누산기(AC) 레지스터는 범용 처리 레지스터로서 사용이 됩니다. 메모리에서 읽어온 명령어는 명령어 레지스터(IR)에 저장되고 임시 레지스터(TR)는 계산 도중의 임시 데이타를 저장합니다. 메모리 주소 레지스터(AR)와 프로그램 카운터(PC)는 메모리의 주소를 나타내어야 하므로 12비트로 구성이 되어 있습니다. PC의 내용이 카운트 순서에 따라 증가함에 따라 명령어들은 분기 명령어를 만날 때까지 순차적으로 수행됩니다. 분기 명령가 수행될 때에는 주소 부분이 PC로 전송되어 다음 수행될 명령어의 주소를 지정하게 됩니다. 이 밖에  입출력 장치로부터 8비트 문자 정보를 송수신하기 위하여 입력 레지스터(INPR)와 출력 레지스터(OUTR)가 사용됩니다. 
 그렇다면 레지스터들 사이나 레지스터와 메모리 사이에 정보 전송을 어떻게 하는지 궁금해 지기 시작해지지요 기본 컴퓨터에는 정보 전송을 하기 위한 경로를 버스 시스템으로 구성을 합니다.
위의 그림은 간단히 그린 그림으로서 공통버스에 연결된 기본 컴퓨터의 레지스터들을 보여주고 있습니다.  7개의 레지스터와 메모리 출력이 공통 버스에 연결이 되어 있고 선택입력 S2S1S0를 통해 버스 위에 놓일 출력을 선택합니다. 예를 들어 선택 입력 S2S1S0=011이 면 3번으로 표신된 DR의 출력이 버스에 놓이도록 선택이 됩니다. 또한 공통 버스는 각 레지스터의 입력과 메모리의 데이터 입력에 연결되어 있는데 LD입력이 인에이블되어 있는 레지스터가 다음 클럭 펄스에서 버스의 데이터를 받아서 저장합니다. 메모리는 쓰기 입력이 활성화되었을 때 버스의 내용을 받을 수 있으며 S2S1S0=111이고 읽기 입력이 활성화되었을 때 16비트 출력을 버스에 올려 놓습니다. 12비트인 AR과 PC의 내용이 버스에 전송될 때는 상위 4비트가 0으로 채워지며, 버스의 내용이 AR이나 PC로 전송될 때에는 하위 12비트만 전송이 됩니다. 또한 8비트인 입력 레지스터 INPR와 출력 레지스터 OUTR는 하위 8비트만으로 버스와 데이터를 주고 받는데 INPR는 입력 장치로 부터 한 문자를 읽어와 AC로 전송하며, OUTR는 AC로 부터 한 문자를 읽어와 출력 장치로 전송합니다.