티스토리 뷰

😊[1일 1로그 100일 완성 IT지식] 책을 기반으로 study한 내용을 정리합니다. 

 

1부 요약- 컴퓨터 하드웨어에 관해 설명, 하드웨어가 만들어지는 방식같은 물리적 세부 사항보다는 컴퓨팅 시스템의 논리적 아키텍처에 초점 

  1. 컴퓨터의 구조와 구성 요소 개괄적 설명
  2. 컴퓨터가 어떻게 비트, 바이트, 이진수로 정보를 표현할까?
  3. 컴퓨터가 실제로 계산을 어떻게 수행할까? (어떤 일을 수행하기 위해 비트와 바이트를 어떻게 처리하는 지 살펴보기)

목차

  • 12. 프로세서와 계산기의 다른 점
    • 프로세서(Processor)란?
    • 프로세서 작동 원리
    • 프로세서 기본 연산들의 레퍼토리
    • 캐시 메모리
    • 버퍼 메모리
  • 13. 모형 컴퓨터로 더하기 프로그램 만들기
    • 메모리 내부 표현
    • 모형 컴퓨터 시뮬레이션 명령어
    • 모형 컴퓨터 시뮬레이션 예시 (10 + 20 = 30)

<012> 프로세서와 계산기의 다른 점

프로세서는 계산기보다 훨씬 다양한작업을 수행하지는 못하지만, 계산기와 달리 사람의 개입 없이도 작동할 수 있음 -p.60 line1~3

프로세서는 현재 처리중인 데이터를 기반으로 다음에 무슨 일을 할지 결정할 수 있으므로 스스로 전체 시스템을 운영할 수 있다. -p.60 line6~7

“기계는 특성상 완전히 자동이 되어야 한다. 즉, 계산이 시작된 후에는 운영자에 독립적이어야 한다.” - 벅스, 골드 스타일, 폰 노이만- 

프로세서(Processor)란?

컴퓨터 파일은 크게 2가지로 나뉘어 진다. 실행되는 파일과 그렇지 않고 데이터만 담긴 파일이 있는데 이때 실행되는 파일을 프로그램이라 한다. 그리고 이 프로그램이 실행되는 동작 자체를 프로세스라하고 동작이 되게끔 해주는 하드웨어가 프로세서 이다. 프로세서와 CPU(Central Processing Unit)는 엄격히 구분하면 다르나 보통 같은 의미로 사용된다

프로세서 작동 원리

기본적으로 ALU(ArithmeticalUnit : 연산 장치), ControlUnit(제어 장치) 및 RegisterArray(메모리)로 구성되어있다.

ALU : 입력 장치 또는 메모리에서 수신한 데이터에 대해 모든 산술 및 논리 연산을 수행

ControlUnit : 시스템 전체에서 명령 및 데이터 흐름 제어 장치

RegisterArray : 데이터 처리를 위한 임시 고속 엑세스 메모리 위치로 작동하는 축전지A, B, C 등과 같은 일련의 레지스터로 구성

  1. 주기억장치는 입력장치에서 입력받은 데이터 혹은 보조기억장치에 저장된 프로그램 읽음
  2. CPU는 프로그램을 실행하기 위해 주기억장치에 저장된 프로그램 명령어와 데이터를 읽어와 처리하고 그 결과를 다시 주기억 장치에 저장
  3. 주기억장치는 처리 결과를 보조기억장치에 저장하거나 출력장치로 보냄
  4. 제어 장치는 1~3의 과정에서 명령어가 순서대로 실행되도록 각 장치를 제어

프로세서 기본 연산들의 레퍼토리

  • 산술 연산
  • 메모리에서 연산을 수행할 데이터를 가져오거나 연산 결과를 메모리에 저장
  • 컴퓨터의 나머지 부분을 제어 : 버스로 전송되는 신호를 통해 마우스, 키보드, 디스플레이, 기타 전기적으로 연결된 모든 장치에 대한 입력과 출력을 조직화하고 조정
  • 프로세서는 결정을 내릴 수 있다.

캐시 메모리

처리속도가 다른 기기들 사이에서 데이터의 흐름이나 속도조절을 해주는 부분이 캐시이다. 빠른 처리속도를 가진 기기에게는 미리 데이터를 준비해줌으로서 최대한의 효율을 내도록 하고, 느린 처리속도를 가진 기기에게는 처리할 데이터를 대신 받아줌으로서 다른 기기가 기다리는 일이 적어지도록 한다.

예를 들면, 메모리의 속도가 100이고, 하드디스크의 속도를 1이라고 가정 한다고 했을 때, 이 때 갑자기 어떤 데이터(용량이 50)를 메모리가 하드디스크에서 읽어 오려고 할 경우 속도가 1인 하드디스크가 50인 용량을 읽기 위해서는 시간이 50 걸립니다. 그런데 50인 용량을 메모리가 받을때는 0.5라는 시간이 걸립니다. 결국 메모리는 하드디스크가 정보를 다 읽을때까지 모두 49.5라는 시간을 아무일도 못하고 놀게 됩니다.

그것을 막기 위해서 캐시라는 장치가 생겼습니다.

만약 메모리의 특정영역을 캐시로 정하고 위의 경우에서 읽어올 데이터 50중에 30을 미리 읽어 왔다면, 30은 미리 메모리에 있으니, 20만 더 읽어 오면 됩니다. 그래서 하드디스크는 20의 시간이 걸리고, 메모리는 19.5라는 시간만 놀게 됩니다. 결국 하드디스크가 2.5배나 빨라진 셈입니다.

버퍼 메모리(buffer cache)

디스크의 입출력 효율을 높이기 위해 주기억 장치의 한 영역을 최근에 사용된 디스크 블록의 내용을 기억하는 버퍼영역으로 할당한 것을 말하는데, 버퍼캐시에 있는 디스크 블록은 디스크 액세스 없이 바로 이용할 수 있으므로 효율이 높아집니다.

버퍼는 역시 두 장치 속도가 차이가 날때 사용하지만, 보통 속도 향상을 위한 것이 아니라, 빠른쪽에서 데이터가 느린쪽으로 보내질때 데이터의 손실을 막기 위해서 쓰입니다.

<013> 모형 컴퓨터로 더하기 프로그램 만들기

메모리 내부 표현

  • 각 명령어는 각자의 숫자형 코드를 저장하는 데 메모리 위치 한 개 사용
  • 명령어가 메모리를 참조하거나 데이터 값을 사용하면 바로 다음 위치도 사용
  • ex. IFZERO와 ADD 같은 명령어는 메모리 두 칸을 차지

모형 컴퓨터 시뮬레이션 명령어

명령어
설명
GET
입력받은 수를 누산기에 넣는다
PRINT
누산기의 내용을 출력
STORE M
누산기 내용의 복사본을 메모리 위치 M에 저장
LOAD M
메모리 위치 M의 내용을 누산기에 적재
ADD M
M의 내용을 누산기의 내용에 더한다
STOP
실행 중지
M:
메모리 위치 M 선언
Top: 명령어
Top 레이블 지정
GOTO Top
Top으로 돌아가서 해당 명령어 실행
Bot: 명령어
Bot 레이블 지정
IFZERO Bot
누산기 값이 0이면 Bot 레이블로 이동

모형 컴퓨터 시뮬레이션 예시

  • 정수 10을 입력 받아 출력하는 프로세스

  • 정수 10, 20을 차례로 입력 받았을때의 프로세스 10 + 20 = 30

<참고 사이트>

https://itrainbowm.tistory.com/54 마이크로프로세서 란?

https://jeongjin984.github.io/posts/Computer-Architecture-2/ Computer Architecture 2

https://lascrea.tistory.com/140 캐시메모리와 버퍼메모리의 차이

https://www.cs.princeton.edu/courses/archive/fall21/cos109/toysim.html 모형 컴퓨터

 

댓글