강의정보처리필기강사조대호 차시명 [CA-06 강 ] 프로세서와명령어차시 6 차시 학습내용 프로세서와명령어 학습목표 컴퓨터의구조와프로세서에대해이해할수있다 컴퓨터의명령어에대해이해할수있다 학습내용 1. 컴퓨터의구성 - 1 -
2. 중앙처리장치 (Central Processing Unit) 주기억장치에기억된명령을꺼내서해독하고, 시스템전체에지시신호를내는장치명령코드가명령을수행할수있게필요한제어기능을제공제어장치의구성 - 프로그램카운터, 명령어레지스터, 부호기, 명령해독기, 순서기, 주소처리기 제어장치의명령에따라실제로연산을수행하는장치산술연산, 논리연산, 관계연산, 이동 (Shift) 등을수행연산장치의종류 - 가산기, 누산기, 보수기, 데이터레지스터, 오버플로우검출기, 시프트레지스터 중앙처리장치내부에서처리할명령어나연산의중간결과값등을일시적으로기억하는임시기억장소 CPU, 메모리, I/O 장치등과상호필요한정보를교환하기위해연결하는공동의전송선 제어버스, 주소버스, 데이터버스 (CPU 와메모리또는 I/O 장치사이에서데이터전송 ) - 2 -
3. 레지스터의종류및기능 종류 프로그램카운터 (PC, Program Counter) 명령레지스터 (IR, Instruction Register) 누산기 (AC, Accumulator) 상태레지스터 (Status Register) PSWR (Program Status Word Register) 플래그레지스터 메모리주소레지스터 (MAR, Memory Address Register) 기능 차기명령 (Next Instruction) 의번지를지시 ( 다음에실행할명령의번지를가짐 ) 프로그램실행도중분기가발생하면 CPU 내의 PC 의내용을먼저변화시켜야함 ( 분기명령어가실행되는경우에는그목적지주소로갱신됨 ) 현재실행중인명령의내용을기억 OP code 명령호출이 IR 로이동 연산장치에있는레지스터 (register) 의하나로연산결과를일시적으로기억하는장치 주소부분이하나밖에없는 1- 주소명령형식에서결과자료를넣어두는데사용하는레지스터 컴퓨터의내부상태를나타냄 PSW 를저장하고있는레지스터 PSW : 시스템내부의순간순간의상태를기록하고있는정보 CPU 내부에서방금행한연산의결과로나타나는상태 ( 결과가 0 인지여부, 부호 ( 음수인지양수인지 ), 캐리및오버플로의발생여부등의상태 ) 를나타내는플립플롭 기억장치를출입하는데이터의번지를기억하는레지스터 메모리버퍼레지스터 기억장치를출입하는데이터가잠시기억되는레지스터 (MBR, Memory Buffer Register) 인덱스레지스터 (Index Register) Shift Register Major State Register 어드레스의수정, 서브루틴의연결, 반복계산수행등의역할을하는레지스터 자료의병렬전송을직렬전송으로변환 2 배길이레지스터 (double-length register) 라고도불림 CPU 가무엇을하고있는지나타냄 4. 명령어 (Instruction) 의구성 연산자 (Operation Code) 부실행할명령이들어있음연산자부의비트수가 n Bit 일때 2의 n승개의명령어 ( 연산자 ) 수행가능 자료 (Operand) 부자료부 = 어드레스필드 = 주소부실제데이터에대한정보를표시하는부분어드레스필드의크기 = 최대메모리용량예 > OP-Code : 6bit, 어드레스필드 16bit 일때, 최대메모리용량은? 64K Word (2의 16승 = 65536 = 64K) - 3 -
5. 연산자 (OP-Code, Operation Code) 의기능 연산자 (Operation Code) 부 자료 (Operand) 부 함수연산기능 중앙처리장치에서데이터를처리하는기능 산술, 논리연산명령 (ADD, AND, CPA, CPC, CLC, ROR, ROL 등 ) 자료전달기능중앙처리장치와기억장치사이에서정보를교환하는기능 Load : 메모리의내용을 CPU로전달 Store : CPU의정보를메모리에기억 Move : 특정레지스터의내용을다른레지스터로옮기는명령 Push, Pop : 스택에자료를저장, 인출하는명령 제어기능프로그램의수행흐름을제어하는데사용무조건분기명령 : GOTO, JMP(Jump) 조건분기명령 : IF, SPA, SNA, SZA 부프로그램호출및복귀 : Call, Return 입, 출력기능 6. 명령어형식 3-주소명령어 OP-Code Operand 1 Operand 2 Operand 3 자료1의주소 자료2의주소 결과의주소 Operand 부가 3개로구성 연산후에입력자료가변하지않고보존됨 전체명령어를읽어오는시간단축 프로그램의길이가짧아짐 하나의명령을수행하기위해서최소한 4번기억장소에접근해야하므로전체적인수행시간길어짐 2-주소명령어 OP-Code Operand 1 Operand 2 자료1의주소결과의주소 자료2의주소 Operand 부가 2개로구성 3-주소명령어에비해길이가짧음 - 4 -
온라인 IT교육최강 (www.gisa79.com) 계산결과를시험할필요가있을때기억장치에서기억될뿐만아니라 CPU에도남아있어 CPU내에서직접시험이가능하므로시간이절약됨. 전체프로그램의길이가길어짐 1-주소명령어 OP-Code Operand 1 자료1의주소 Operand 부가 1개로구성반드시누산기 (Accumulator) 가필요한주소지정방식모든명령은누산기에기억되어있는자료를사용함예 > C = A + B LOAD A ADD B STORE C 0-주소명령어 OP-Code Operand 부가없이 OP-code 부만으로구성모든연산은스택 (Stack) 에있는자료를이용하여수행 7. 기타시험에잘나오는것요약정리 단항연산자와이항연산자 - 단항연산자 (Unary Operator) : 피연산자가 1 개만필요 NOT, Complement, Shift, Rotate, MOVE 등 - 이항연산자 (Binary Operator) : 피연산자가 2 개필요 사칙연산, AND, OR, XOR, XNOR 등 명령어설계시고려사항 연산자의종류, 주소지정방식, 해당컴퓨터시스템단어 (Word) 의크기 ( 비트수 ) 스택 (Stack) 자료의삽입 (Push), 삭제 (Pop) 이한쪽에서가능한자료구조, LIFO 구조 0주소명령어형식뿐아니라부프로그램 ( 서브루틴 ) 호출시복귀주소저장, 인터럽트발생시복귀주소저장, 재귀 (Recursive) 프로그램의순서제어, 역 polish 형산술식의처리등에쓰임 0-주소명령형을갖는컴퓨터구조의원리로스택머신 (Stack Machine) 이라고도함 - 5 -
재귀 (Recursion) 프로그램 한루틴이자기를다시불러실행하는프로그램 이터레이션 (Iteration) 해당루틴이정확한결과를산출할때까지해당루틴에서발생한결과를가지고처음에사용한자료를다시 수정하여계산작업을반복적으로수행하는것 프로그램디버깅 (Debugging) 프로그램의오류를발견하고그원인을밝히는작업 - 트레이서 (tracer) : 프로그램의실행과정을출력하는프로그램 - 덤프 (dump) : 주기억장치의내용을그대로화면이나프린터, 디스크등에출력하는것 부프로그램 ( 서브루틴, Subroutine) 과매크로부프로그램 : 반복적으로사용되는코드를필요할때호출하여사용할수있도록한프로그램매크로 : 반복적으로사용되는코드를프로그램내에삽입하여언제든호출하여사용할수있도록한것프로그래머가어셈블리언어로프로그램을작성할때반복되는것을효과적으로하기위함공통점 : 여러번중복되는부분을별도로작성하여사용 데이터처리명령어종류 산술명령어 : ADD, SUB, MUL, DIV, 산술 Shift 논리명령어 : NOT, AND, OR, XOR, 논리적 Shift, ROTATE, COMPLEMENT, CLEAR 연산자의우선순위 : 산술연산자 관계연산자 논리연산자 요점정리 1. 컴퓨터의구조와프로세서에대해이해할수있다 2. 컴퓨터의명령어에대해이해할수있다 다음차시예고 수고하셨습니다. 다음 7 주차에서는 [CA-7 강 ] 주소지정방식, 명령실행과제어 에대해서학습하도록하겠습니다. - 6 -