IT 지식 : 프로세서와 계산기 / 모형 컴퓨터

강지영·2022년 7월 25일
0

IT지식

목록 보기
2/8

📚 프로세서와 계산기의 다른 점

📰 프로세서란?

  • 중앙 처리 장치(CPU)는 명령어를 해석하는 컴퓨터의 한 부분
  • 컴퓨터의 '두뇌'
  • 프로세서에는 기본 연산들의 레퍼토리가 있어 산술연산이 가능하고 메모리에서 연산을 수행할 데이터를 가져오거나 연산 결과를 메모리에 저장할 수 있다
    => 계산기와 비슷
  • 버스로 전송되는 신호를 통해 마우스, 키보드 등 전기적으로 연결된 모든 장치에 대한 입출력을 조직화 하고 조정

💡 프로세서의 가장 중요한 점
결정을 내릴 수 있다
데이터를 비교를 수행할 수 있고 그 데이터 결과를 토대로 무슨 일을 할 지 결정할 수 있으므로 스스로 전체 시스템을 운영하는 것이 가능하다.
즉 프로세서는 계산기와 달리 사람의 개입없이도 작동이 가능하다.
이 부분이 프로세서와 계산기의 차이점이다.


📚 모형 컴퓨터

📰 모형 컴퓨터란?

  • 물리적으로 존재하지 하지 않고 이론상으로 존재해 이론상의 설계를 모방하여 작동하는 프로그램을 만들어 상상의 컴퓨터를 위한 프로그램을 작성하고 어떻게 실행되는 지 볼 수 있는 컴퓨터
  • 모형 컴퓨터에는 명령어와 데이터를 저장하기 위한 메모리가 있고, 한 개의 수를 담을 만한 용량의 부가적인 저장영역인 누산기가 있다.
    누산기는 계산기에서 사용자가 가장 최근에 입력한 수나 가장 최근의 계산 결과를 담고 있는 디스플레이와 유사하다.

모형 컴퓨터에서 기본 연산을 수행하기 위한 명령어

  • GET : 키보드에서 수를 입력 받은 후 누산기에 넣음
  • PRINT : 누산기의 내용을 출력
  • STORE M : 누산기 내용의 복사본을 메모리 위치 M에 저장
  • LOAD M : 메모리 위치 M의 내용을 누산기에 적재
  • ADD M : 메모리 위치 M의 내용을 누산기 내용에 더함
  • STOP : 실행 중지

작동을 시작하면 다음의 사이클을 반복

  • 인출(Fetch) : 메모리에서 다음 명령어 가져옴
  • 해석(Decode) : 명령어가 무슨 일을 하는 지 알아냄
  • 실행(Execute) : 명령어를 실행
    - 인출 단계로 돌아감

💡 모형 프로그램 사용해보기

✅ 첫 번째 모형 프로그램

  • 명령어를 작성하고 메모리를 넣은 후, 프로세서에 그 명령어들을 실행하라고 지시

    - 첫 번째 명령어(GET) : 사용자에게 수를 입력하도록 요청
    - 두 번째 명령어(PRINT) : 해당 수를 출력
    - 세 번째 명령어(STOP) : 프로세스에 중지하고 명령

✅ 두 번째 모형 프로그램

  • 메모리에 값을 저장한 후 그 값 가져오기

    💻 두 수를 더하고, 그 합계를 출력하는 모형 컴퓨터 프로그램
    GET : 첫 번째 수를 입력받아 누산기에 넣음
    STORE FirstNum : FirstNum이라는 메모리 위치에 첫 번쨰 수를 저장
    GET : 두 번째 수를 입력받아 누산기에 넣음
    ADD FirstNum : 첫 번째 수를 누산기에 있는 값에 더함
    PRINT : 결과 합계 값을 출력
    STOP : 프로그램 실행을 중지
    FirstNum: > 첫 번째 입력 수를 담을 메모리 위치_

💡 프로그램의 명령어가 메모리 위치를 필요할 때 그 위치를 나타내는 방법
1. 데이터가 일곱 번째 메모리 위치에 오도록 하는 것
- 프로그램이 수정되면 데이터의 위치가 바뀔 수 있기 때문에 고정된 번호를 하는 것 바람직하지 않음
2. 데이터 위치에 이름을 부여하는 것

✅ 분기 명령어

  • 종종 '분기' 또는 '점프'라고 불리는 GOTO명령어는 GOTO가 지정하는 위치로 이동하여 명령어를 실행하도록 프로세서에 지시
  • GOTO 명령어 사용 시 프로세서가 프로그램의 앞부분으로 돌아가 명령어 처리를 반복할도록 할 수 있음

명령어를 재사용할 순 있지만, 반복되는 일련의 명령어, 즉 루프(loop)가 생겨버린다. 이 무한정 루프를 멈추기 위해 조건부 분기(conditional branch) 또는 조건부 점프(conditional jump)라는 명령어를 사용한다.

💡 조건부 분기(conditional branch)또는 조건부 점프(conditional jump)
명령어를 무작정 계속 실행하도록 하지 않고 조건을 검사하여 다음에 수행할 작업을 결정하는 명령어

모형 컴퓨터에는 IFZERO라는 명령어가 있다.

  • IFZERO : 이 명령어는 값이 0인지 검사하여 만일 그렇다면 특정한 명령어로 건너뛰는 명령어

💻 IFZERO 명령어를 사용하여 0값이 입력될 때까지 입력 값을 받고 출력해주는 프로그램
TOP >
- GET : 수를 입력받아 누산기에 넣음
- IFZERO Bot : 누산기 값이 0이면 Bot 레이블이 붙은 명령어로 이동
- PRINT : 누산기 값이 0이 아니므로 그 값을 출력
- GOTO Top : TOP으로 돌아가서 다른 수를 입력 받음

Bot >
- STOP : 프로그램 실행 중지

profile
Hello World!

0개의 댓글