728x90
하드웨어 (Hardware)
- 데이터를 처리하는 물리적인 기계 장치
- 프로세서 (중앙처리장치), 버스, 메모리 등 다양한 주변장치로 구성됨
소프트웨어 (Software)
- 특별한 작업 지시를 위해 명령어로 작성한 프로그램
운영체제
- 컴퓨터 하드웨어와 사용자 사이에 위치하며 하드웨어와 소프트웨어 자원을 관리하는 프로그램
프로세서 (Processor)
- 운영체제와 가장 밀접한 하드웨어로 각 부분의 동작 제어 및 연산 수행
- 중앙처리장치 (CPU : Central Processing Unit)라 하며 레지스터, 산술 논리 연산장치, 제어장치 등으로 구성
- 마이크로프로세서 (Microprocessor)
- 주기억장치를 제외한 레지스터, 산술 논리 연산장치, 제어장치를 칩 하나로 구성
버스 (Bus)
- 프로세서를 포함한 각 장치 간 또는 sub-system을 서로 연결하여 정보(Data)를 주고받을 수 있게 해주는 통로
- 컴퓨터 내부 각 요소의 다양한 신호(eg. 데이터 입출력 신호, 프로세서 상태 신호, 인터럽트 요구와 허가 신호, Clock 신호 등)는 공동 통신 채널, 즉 버스를 통해 전달된다.
- 버스의 위치에 따라 내부 버스와 외부 버스로 분류
- 내부 버스
- 프로세서 내부에서 레지스터, 연산장치, 메모리와의 인터페이스 등을 연결
- 시스템 버스 인터페이스 회로를 통해 외부 버스와 연결
- 외부 버스
- 프로세서와 메모리, 프로세서와 입출력장치, 입출력장치와 입출력장치를 연결
- 시스템 버스라 부르며 각 시스템 버스는 버스 제어기라 불리는 제어 회로를 가짐
- 메모리 버스 : 프로세서와 메모리 또는 캐시 메모리를 연결하여 데이터를 교환하며, 프로세스 입출력 버스 정도의 속도로 실행, Backside Bus와 Frontside Bus로 구분
- Backside Bus : 프로세서와 캐시 메모리간의 전용 채널로 프로세서와 동일한 속도로 데이터 전송
- Frontside Bus : 프로세서와 메모리 간의 데이터를 전송하며 속도가 느림
- 주변 버스 : 입출력 버스, 프로세서와 주변 장치를 연결하여 데이터 전송
- 내부 버스
- 버스의 기능에 따라 데이터 버스, 주소 버스, 제어 버스로 분류
- 데이터 버스
- 컴퓨터 시스템에서 데이터(자료), 명령어 등의 정보를 교환하는 전송로
- 프로세서에서 메모리나 입출력 장치로 데이터 출력 또는 반대로 데이터를 입력 받을 때 사용하는 양방향 버스
- 데이터 버스 신호선의 수가 해당 프로세서의 워드 길이와 같으므로 프로세서 성능을 결정
- 주소 버스
- 하나의 시스템 장치에서 다른 장치로 주소 정보를 전송하기 위해 사용
- 신호(주소)선의 수에 따라 최대 사용 가능한 메모리 용량이나 입출력장치 수를 결정
- 제어 버스
- 프로세서가 저장장치와 입출력장치에 데이터를 전송할 때, 현재 수행중인 작업 종류나 상태를 다른 장치에 알릴 때 이용하는 단방향 버스
- 데이터 버스
레지스터 (Register)
- 프로세서에 위치한 고속 메모리로 프로세서가 바로 사용할 수 있는 데이터 저장
- 특수한 값 하나를 저장하는 기억 공간으로 사용
- 컴퓨터의 구조에 따라 크기 및 종류가 다양함
- 용도에 따라 전용 레지스터와 범용 레지스터, 저장되는 정보의 종류에 따라 데이터 레지스터, 주소 레지스터, 상태 레지스터로 나뉨
- 사용자가 저장한 정보의 변경 여부에 따라 사용자 가시 레지스터 (User-Visible Register)와 사용자 불가시 레지스터 (User-Invisible Register)로 분류됨
- 사용자 가시 레지스터 (User-Visible Register)
- 운영체제(시스템)와 사용자 프로그램을 통해 접근 가능한 데이터와 주소, 일부 조건 코드를 보관
- 조건 코드 : eg. 관련된 연산 결과로 발생하며, 프로그램적으로 접근하는 제로(0), 자리넘침, 자리올림, 양수 (Positive) 비트 등
- 데이터 레지스터
- 함수 연산에 필요한 데이터 저장
- 수치, 문자 등을 저장하므로 산술이나 논리 연산에 이용되며, 연산 결과로 플래그 값을 저장
- 주소 레지스터
- 주소나 유호 주소를 계산하는데 필요한 주소의 일부분을 저장
- 주소 레지스터에 저장된 값 (수치 데이터)을 이용해 산술 연산 가능
- 데이터 레지스터
- 사용자 불가시 레지스터 (User-Invisible Register)
- 프로세스의 제어와 상태 관리
- 프로그램 카운터, 명령어 레지스터, 프로그램 상태 레지스터, 메모리 주소 레지스터, 메모리 버퍼 레지스터 등이 속함
- 프로그램 카운터 (PC : Program Counter)
- 프로그램 수행을 제어하는 명령어 실행 순서를 보관. 즉, 다음에 실행할 명령어의 주소 저장
- 계수기로 되어있어 실행할 명령어를 메모리에서 읽으면 Count가 증가한다.
- 명령어 레지스터 (IR : Instruction Register)
- 현재 수행하는 명령어를 저장, 명령어의 연산자 부분만 보관하여 다른 레지스터만큼 비트를 가질 필요는 없다.
- 명령어 연산자는 메모리 내에서만 전달되므로, 메모리 버퍼 레지스터와 명령어 레지스터 사이에 직접 정보 전달 경로를 통해 명령어 연산자를 빠르게 전달 가능
- 프로그램 상태 레지스터 (PSR : Program Status Register)
- 상태 정보 (플래그, 프로그램 카운터에 저장된 주소 정보 등)를 저장
- 프로그램이 수행되는 순간마다 프로그램의 수행 상태와 프로세서 상태를 나타낸다.
- 메모리 주소 레지스터 (MAR : Memory Address Register)
- 접근하려는 메모리의 주소 저장
- 주소 레지스터, 프로그램 카운터 등으로부터 주소 정보를 전달받는다.
- 메모리 버퍼 레지스터 (MBR : Memory Buffer Register)
- 메모리에서 정보를 읽거나 정보를 저장할 때 사용
- 연산장치를 통해 메모리 주소 레지스터, 인덱스 레지스터, 프로그램 카운트 등의 주소 레지스터와 데이터 레지스터에 정보를 전달하는데 사용한다.
'취업준비 > 전산 기초' 카테고리의 다른 글
프로세스 스케줄링 (0) | 2022.03.24 |
---|---|
프로세스와 스레드의 차이 (0) | 2022.03.14 |
소프트웨어 디자인 패턴(Design Pattern) (0) | 2021.09.15 |
소프트웨어 아키텍처 비용 평가 모델 (0) | 2021.09.14 |
현행 시스템 분석 (0) | 2021.09.11 |