minhui study
week 1 - 중앙처리장치(CPU) 구조 및 명령어 동작 과정 본문
▶ 컴퓨터 시스템의 구성요소
[ 소프트웨어 ]
- 시스템 소프트웨어(System software)
: 컴퓨터 시스템을 효율적으로 운영하고 제어하는 컴퓨터 프로그램
: 운영체제, 컴파일러, 입출력 제어 프로그램
- 응용 소프트웨어(Application software)
: 시스템 소프트웨어를 기반으로 수행되는 응용 프로그램
[ 하드웨어 ]
▶ 중앙처리장치 ( CPU : Central Processing Unit )
→ 중앙처리장치는 사람의 두뇌와 같이 컴퓨터 시스템에 부착된 모든 장치의 동작을 제어하고 명령을 실행하는 장치 로 제어 장치, 산술 논리 연산 장치(ALU, Arithmetic Logic Unit), 레지스터(Control Device) 그리고 이들을 연결하여 데이터를 전달하는 버스로 구성되어 있다.
① 제어 장치(명령어를 해독하고 제어 신호를 해당장치에 전달)
- 명령어 형식
-> 연산 코드 : 수행되어야 할 연산이 지정되어 있는 필드
-> 기억장치 주소 : 해당 연산을 수행할 때 데이터가 저장되어 있는 주소
→ 기억장치 버퍼 레지스터 : 주기억장치에서 읽어온 데이터, 가장 최근에 읽은 데이터를 임시적으로 저장
→ 명령어 레지스터 : 가장 최근 RAM에서 인출한 명령어 저장( 기억장치 버퍼 레지스터의 명령어를 저장함 )
→ 명령어 해독기 : 명령어 레지스터에 저장된 명령어의 연산 코드를 전달받은 후 명령어의 연산 코드를 해독하여 수행 할 연산을 결정해서 연산장치에 전달
→ 기억장치 주소 레지스터 : 명령어 레지스터에 저장된 명령어의 주소 번지를 저장
→ 프로그램 카운터 : 다음에 실행할 명령어의 주소 번지를 저장
《 제어 장치의 기본 동작 과정》
② 산술 논리 연산 장치(ALU, Arithmetic)
- 연산장치는 제어장치의 명령에 따라 실제로 연산을 수행하는 장치이다.
- 연산장치가 수행하는 연산에는 산술연산, 논리연산, 관계연산, 이동 등이 있으며 연산장치는 가산기, 누산기, 보수 기, 데이터 레지스터, 오버플로 검출기, 시프트 레지스터 등으로 구성되어 있다.
→ 산술 및 부울 논리 연산기 ( Arithmetic and Boolean Logic )
: 실질적인 산술 연산(+ - / x ), 논리 연산을 수행( AND, OR, NOT, XOR )하는 회로
→ 상태 플러그 ( Status Flags ) : 연산 중인 ALU 내의 데이터 상태를 음수, 0, 오버플로우로 표시
→ 이동기 (Shifter) : 2진수의 각 자리를 왼쪽 또는 오른쪽으로 이동해주는 회로
→ 보수기 ( Complementer ) : ALU 내의 데이터에 대하여 보수 연산 수행, 뺄셈을 사용할 때 사용하는 보수를
만들어주는 논리 회로
③ 레지스터
-> 컴퓨터 CPU 내에서 처리할 명령이나 ALU 처리 결과 데이터 등을 일시적으로 보관하는 임시 기억장소
-> 컴퓨터의 기억장치들 중에서 속도가 가장 빠르다.
- 일반 목적용 레지스터 : 프로그래머가 여러 용도로 사용, 연산을 위한 모든 피연산자를 저장
- 데이터 레지스터 : 연산에 사용할 데이터 저장에 사용
- 주소 레지스터 : 특정 주소 지정방식을 위해 사용, 유효주소를 저장하기 위한 레지스터
- 입출력 주소 레지스터 : 입출력 장치의 주소 저장
- 입출력 버퍼 레지스터 : 입출려 모듈과 CPU사이에 교환되는 데이터 일시 저장
- 스택 포인터 : 스택의 최상위 주소를 저장하는 레지스터
④ 내부 버스(CPU 및 메모리 내에 구성된 Bus)
- 버스는 CPU, 메모리 등과 상호 필요한 정보를 교환하기 위해 연결된 공동의 전송선이다.
- CPU 내의 산술 논리 연산장치와 제어장치 간의 이동, 그리고 제어장치와 레지스터 간의 데이터 이동을 위한 통호
- 전송하는 정보에 따른 분류
→ 제어 버스(Control Bus) : CPU의 현재 상태나 상태 변경을 메모리에 알리는 제어장치에서 발생되는 제어신호 를 전송하는데 사용하는 양방향 전송선
→ 데이터 버스(Data Bus) : CPU와 메모리 사이에서 실질적인 데이터를 전송하는 양방향 전송선
→ 번지 버스(Address Bus) : CPU가 메모리의 번지를 지정할 때 사용하는 단방향 전송선
▶ 기억장치
→ 주기억장치(Main memory)
: 프로그램과 프로그램을 수행하는 데 필요한 데이터를 저장한다.
: CPU에 접근 속도가 빠름
: RAM (Random Access Memory)
-> Ram에는 현재 사용중인 프로그램이나 데이터가 저장되어 있다.
→ 캐시메모리
: 주기억 장치와 CPU 사이에 위치하며, 자주 사용하는 프로그램과 데이터를 기억한다.
: 처리속도가 거의 CPU의 속도와 비슷할 정도의 속도를 가지고 있다.
: 캐시 메모리를 사용하면 주 기억장치를 접근하는 횟수가 줄어들어 컴퓨터의 처리속도가 향상된다.
→ 보조기억장치
: 영구적으로 데이터 저장
: 주기억장치를 통해 CPU와 정보교환 ( CPU와 직접 자료 교환 불가능 )
: 주기억장치에 비해 저장용량이 크고, 가격이 싸지만 속도가 느림
: 플로피디스크, 하드 디스크, 광 디스크, 플래시 메모리, CD-ROM, DVD
▶ 입출력장치(Input/Output Device)
→ 입력 장치 : 마우스, 키보드 등
→ 출력 장치 : 모니터, 프린터기 등
▶ CPU 명령어 수행과정
① 인출 Fetch
: 필요한 명령어를 주기억장치에서 불러옴
② 해독 Decode
: 호출된 명령어를 해석함
③ 실행 Execute
: 해석된 명령어를 산술/논리 연산장치를 통해 실행
④ 저장 Store
: 수행결과를 주기억장치에 저장
< 출처 >
강의노트, 디지털논리와 컴퓨터 설계, Harris et al. (조영완 외 번역), 사이텍미디어, 2007, 컴퓨터 구조와 원리 (비주얼 컴퓨터 아키텍처), 신종홍 저, 한빛미디어, 2011
문제 및 답안
'컴퓨터 구조 > Swing study' 카테고리의 다른 글
week4 - 명령어 분류와 형식 (0) | 2020.05.26 |
---|---|
week3(2) - 메모리 구조와 레지스터 종류 (0) | 2020.05.20 |
week3(1) - 명령어를 효과적으로 실행하기 위한 기법 (0) | 2020.05.19 |
week 2(1) - 컴퓨터 정보의 표현 (0) | 2020.04.13 |
week 2(2) - 명령어 동작 과정 (0) | 2020.04.13 |