프로그래밍 코드를 똑같이 따라 작성해도 코드가 제대로 작동하지 않는 경험들을 다들 해봤을 것이다. 프로그래밍 언어의 문법만 알고 있는 사람들에게 컴퓨터 코드란 코드를 입력하면 결화를 내놓는 미지의 대상이다 하지만 컴퓨터 구조를 이해 한다면 문제 해결의 실마리를 빠르게 찾을수 있을것이다.
컴퓨터의 기본 구조
컴퓨터는 기본적으로 하드웨어와 소프트 웨어로 구성되어 있다.
- 소프트웨어
- 하드웨어의 동작을 지시하고 제어하는 명령어의 집합
- 하드웽에 의존적이고 하드 웨어의 사용 효율을 향상시키거나 편리한 이용환경을 제공해 준다.
- 하드웨어
- 컴퓨터를 구성하는 기계적 장치
- 메인 보드, cpu,주기억장치 모듈, 확장 보드, 보조기억장치, 입출력장치 등
CPU
- 사람으로 따지면 뇌의 기능을 하는 부분으로 프로그램 실행과 데이터 처리라는 중추적인 역할을 수행한다.
- 컴퓨터의 이론적인 속도는 cpu의 성능에 의해 결정된다.
- cpu는 기본적으로 산술논리연산장치(ALU) ,레지슽,제어장치로 구성된다.
- ALU
- 컴퓨터 내부에서 수행되는 대부분 계산을 맡게 된다(산술연산,논리연산 등)
- 레지스터
- cpu 내부의 작은 임시 저장 장치이다
- 여러 개의 레지스터가 존재 하고 크게 범용 레지스터와 특수 레지스터로 나뉜다.
- 제어장치
- 제어신호를 내보내고 명령어를 해석하는 장치이다.
- 제어 신호란 컴퓨터 부품을 관리하고 작동시키기 위한 전기 신호이다.
주기억장치(RAM)
- 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품이다.
- 메인 보드상에서 cpu와 가까이 위치한 반도체 기억장치이다.
- 고속 읽기 쓰기가 가능하지만 휘발성이라는 특징을 가지고있다 .
- RAM은 stack,heap,data,code영역으로 나뉜다.
보조기억장치
- 하드 디스크나 SSD와 같은 영구 저장 능력을 가진 기억장치를 뜻한다.
- cpu가 직접 엑세스 하지 못하고 별도의 제어기를 필요로 한다.
- 저장밀도가 높고 비트당 가격이 저렴하지만 속도가 느리다는 단점이 있다.
입출력장치
- 입력장치와 출력장치를 통칭하는 용어로 키보드 디스플레이 모니터 등 다양한 장치들이 있다.
- 보조기억 장치와 같이 cpu와 직접 데이터를 교환할 수 없고 제어기를 통해 명령을 수행한다.
- 보조기억장치와 입출력장치들을 주변장치 라고 부르기도 한다.
정보의 표현과 저장
컴퓨터 프로그램은 프로그래밍 언어와 같은 고급 언어를 이용하여 작성한다. 하지만 이렇게 작성된 프로그램은 0과1로 이루어진 컴퓨터는 이해하지 못한다. 따라서 컴파일러,인터플린터와 같은 소프트웨어로 어셈블리어로 변환하고 어셈블러로 인한 기계어로 변역해 컴퓨터가 이해 할 수 있게 만든다.
시스템의 구성
시스템 버스
- CPU와 기억장치 사이에 정보를 교환하는 통로가 필요한데 이름 시스템 버스라고 한다.
- 시스템버스는 주소버스,데이터버스,제어버스로 이루어 진다.
- 주소버스
- CPU,DMA가 외부로 발생하는 주소 정보를 전송하기 위한 경로이다
- 주소버스는 bit형태로 CPU 또는 DMA에 읽히고 쓰인다.
- 주소 버스는 CPU에 의해 발생되어 기억장치로 보내지는 정보이기 떄문에 단방향성을 가진다.
- 데이터 버스
- CPU가 기억장치, I/O장치 사이에서 데이터를 전송하기 위한 경로이다
- 제어 버스
- CPU가 시스템 내의 각종 요소들의 동작을 제어하는데 필요한 버스이다.
- 기본적인 제어 신호는 기억장치 읽기/쓰기신호와 I/O읽기 쓰기가 있다.
- 읽기와 쓰기 동작을 모두 지원해야 하므로 양방향성을 가진다.
- 주소버스
CPU와 I/O 장치의 접속
- I/O 장치,보조기억 장치는 CPU와 직접 제어하거나 엑세스하지 못한다. 따라서 별도의 인터페이스 혹은 제어기를 통해 CPU와 통신을 이어간다.
- 제어기는 상태 레지스터와 데이터 레지스터를 가지고 있다.
- 상태 레지스터: I/O장치의 상태를 나타내는 비트들을 저장하는 레지스터
- 데이터 레지스터: CP와 I/O 장치간의 임시 데이터 기억장치
'cs(컴퓨터구조)' 카테고리의 다른 글
주소 지정 방식 (0) | 2023.06.03 |
---|---|
CPU 성능 향상 기법 (0) | 2023.06.03 |
명령어 싸이클 (1) | 2023.06.03 |