본문 바로가기
컴퓨터 구조

제 1장 기본 개념과 컴퓨터 발전과정

by ash9river 2024. 3. 28.

제 1장 기본 개념과 컴퓨터 발전과정

구조와 조직

  1. Architecture
    • 프로그래머에게서 보이는 시스템 특성들
    • 프로그램의 논리적 수행에 직접적인 영향을 주는 시스템 특성들
    • 구조적 속성이 포함하는 것들

명령어 세트, 여러가지 데이터들(수, 문자 등)의 표현에 사용되는 비트들의 수, I/O 방식 및 기억장치 주소지정 방식.

  1. Organization
    • 구조에서 정의한 사항들을 구현하기 위한 연산과 유닛들,과 상호 연결 방식
    • 조직상의 속성이 포함하는 것들

프로그래머에게는 보이지 않는 하드웨어 세부사항들인 제어신호, 컴퓨터와 주변기기들 사이의 인터페이스 및 기억장치 기술

사례: IBM System/370 구조(Architecture)

  • family 개념이 탑재.
  • 기존에는 모델이 바뀌면 구조도 바뀌었으나, IBM System/370은 구조가 기존 모델과 동일하여(Architecture의 동일) 고객의 소프트웨어 투자 보호

조직과 기능

  • 조직(Structure)
    • 구성 요소들이 서로 간에 상호작용하는 방법(어떠한 컴포넌트로 구성되어 있는가)
  • 기능(Function)
    • 조직의 부분으로서 각 구성요소의 동작(컴포넌트가 무슨 기능을 하는가)

조직

조직

 

기능

  • 컴퓨터가 수행할 수 있는 기본적인 기능 4가지
    1. 데이터 처리(data processing):
      • 데이터는 매우 다양한 형태를 가지며, 처리 요구의 범위도 넓다.
    2. 데이터 저장(data storage):
      • 단기: 고속/휘발성/저용량
      • 장기: 저속/비휘발성/대용량
    3. 데이터 이동(data movement):
      • 입출력(I/O) 데이터가 컴퓨터와 직접 연결된 장치로부터 들어오거나 나가는 과정
      • 데이터 통신: 먼거리에 위치한 원격장치들로 데이터를 이동시키는 과정
    4. 제어(control):
      • 제어 유닛이 명령어들에 따라 컴퓨터의 자원 관리 및 효율적으로 사용되게끔 조정

컴퓨터 조직 상의 주요 네가지 구성요소들

  1. CPU: 컴퓨터의 동작을 제어하며 데이터 처리 기능들을 수행함.
  2. 주기억장치: 데이터를 저장.
  3. I/O: 컴퓨터와 외부 환경 간에 데이터를 이동.
  4. 시스템 상호 연결: CPU, 주기억장치, I/O 간의 통신을 제공해주는 메커니즘

CPU 주요 요소 상의 요소들

  • 제어 유닛: CPU 및 컴퓨터의 동작을 제어
  • 산술논리연산장치(ALU): 컴퓨터의 데이터 처리 기능을 수행
  • 레지스터: CPU의 내부 저장장치 제공
  • CPU 상호연결(Interconnection): 제어 유닛, ALU, 레지스터 간의 통신을 제공해주는 메커니즘

멀티코어 컴퓨터 조직(Multicore Computer Structure)

  • 중앙처리장치(CPU):
    • 명령어들을 인출하고 실행하는 컴퓨터의 한 부분
    • ALU 제어 유닛 및 레지스터들로 구성
    • 단일 프로세싱 유닛을 가진 시스템에서는 단순히 프로세서라고 불림
  • 코어(Core):
    • 프로세서 칩 상의 개별 프로세싱 유닛
    • 기능적으로 보면 단일-CPU 시스템에서의 CPU와 같을 수 있음
    • 특성화된 프로세싱 유닛도 코어라 불림
  • 프로세서(Processor):
    • 하나 그 이상의 코어들을 포함하고 있는 물리적 실리콘 조각
    • 명령어들을 해석하고 실행하는 컴퓨터 요소
    • 만약 어떤 프로세서가 여러 개의 코어들을 포함하고 있다면, 멀티코어 프로세서라 불림

캐시 메모리(Cache Memory)

  • 프로세서와 주 기억장치 사이에 위치한 다중의 기억장치
  • 프로세서와 주 기억장치의 속도 차이를 극복하기 위한 메모리

컴퓨터의 역사(발전방향)

  1. 제 1세대: 진공관
    • 진공관은 디지털논리회로와 기억장치를 위하여 사용됨.
    • IAS 컴퓨터: 폰노이만에 의해 제안됨.
      MBR이 data는 Arithmetic-Logic circuits로 보내고, address는 MAR로 감.
    • IAS Memory Format(40-bit):
    • - Number word: 1비트는 sign bit(부호), 나머지 39비트는 data - Instruction word: 20비트씩 나눠서 명령어 2개를 넣음. 20비트에는 명령내용(opcode) 8비트, 주소(address) 12비트로 구분됨.
    • 레지스터
      • 기억장치 버퍼 레지스터(MBR): 기억장치에 저장 혹은 I/O 유닛에 보내질 단어 저장, 또는 기억장치나 I/O 유닛에서 word를 받아들임.
      • 기억장치 주소 레지스터(MAR): MBR로 쓰여지거나 읽혀질 word가 저장된 기억 장치의 주소 지정.
      • 명령어 레지스터(IR): 실행될 명령어의 8-bit 연산 코드를 저장.
      • 명령어 버퍼 레지스터(IBR): 기억장치로부터 읽혀질 word의 우측에 위치한 명령어 일시적 저장하는데 사용.(40비트에 20비트 명령어 2개있기 떄문)
      • 프로그램 카운터(PC): 기억장치로부터 읽혀질 다음 명령어의 주소 저장.
      • 누산기(AC) 및 multiplier quotient(MQ): ALU 연산에 사용될 오퍼랜드와 결과를 일시적으로 저장하는데 사용.

IAS System

KakaoTalk_20231028_154016277KakaoTalk_20231028_154051915

  1. 제 2세대: 트랜지스터
    • 더 복잡한 산술연산 유닛 및 제어 유닛
    • 고급 프로그래밍 언어의 사용으로 인한 저장공간의 증가
  2. 제 3세대: 집적회로
    • 논리소자(Gate)와 저장공간(Memory cell)이 들어감

IBM System/360

  • 1964년에 발표
  • 최초의 컴퓨터 계열(computer family)로 아키텍처의 상속이 가능함.

계열(Family)의 특성

  • Architecture의 변화가 이끌어 낸 특성
    • 유사하거나 동일한 명령어
    • 유사하거나 동일한 운영체제
  • Organiaztion의 변화가 이끌어낸 특성
    • 속도 향상
    • I/O 포트 수의 증가
    • 기억장치 용량의 증가
    • 가격 상승

마이크로프로세서(Microprocessors)

  • 1971년 인텔이 4004 개발
  • CPU의 모든 구성요소를 한 개의 칩에 넣은 첫 번째 칩
  • 더 빠르고, 더 많은 명령어를 가지고, 더 큰 주소 지정 능력 보유
  • Addressable Memory의 증가: 물리적 공간의 증가
  • Virtual Memory의 탄생: 프로그램의 한계를 돌파하기 위한 가상 메모리
  • Cache의 등장: 속도의 한계를 뛰어 넘기 위해 Cache를 만들음
  • 마이크로프로세서의 물리적 한계를 뛰어 넘기 위해 가상 메모리와 캐시가 나타남.

Intel x86 구조의 발전과정

  • CISC vs RISC
    • CISC(복합 명령어 세트 컴퓨터): 서버와 컴퓨터용, 복잡함
    • RISC(축소 명령어 세트 컴퓨터): 휴대용과 임베디드, 단순함(세탁기에 컴퓨터 CPU를 넣기 아까우니깐)
  • Intel 제품 발전 과정의 특징들
    • Pentium: 슈퍼스칼라 기술 도입으로 다수의 명령어 병렬 실행 가능
      • Pentium Pro: 슈퍼스칼라 조직에 레지스터 재명명, 분기 예측, 데이터 흐름 분석 및 추정 실행을 공격적으로 사용하도록 지원
      • Pentium 2️⃣: 영상, 음성 및 그래픽 데이터를 효율적으로 처리할 수 있도록 설계된 Intel MMX 기술 통합
      • Pentium 3️⃣: 부동소수점 명령어 추가, Streaming SIMD Extensions, single Ins, multi data => vector/행렬 연산
      • Pentium 4️⃣: 멀티미디어를 위한 추가적인 부동소수점 및 보강점의 추가
    • Core: 최초의 Intel x86 micro-core
      • Core 2️⃣: core 구조 64비트로 확장 등등...

임베디드 시스템(Embedded Systems)

  • 특수목적을 위해 어떤 제품 내에서 사용되는 전자장치 및 소프트웨어
  • 단순함, 주변 장치 다양, 저전력 및 저가격
  • 환경과 상호작용해야 할 필요성으로 인해 실시간 제약들이 따른다.

The Internet of Things(IoT)

  • 스마트 장치의 상호연결을 가전제품부터 극소형 센서까지 확장
  • IoT 배치의 확산 과정
    • 정보 기술(IT): IT 기업의 직원에 의해 IT 장비로써 구매되는 PC, 서버, 라우터 등을 말한다. 주로 유선 연결성을 이용.
    • 가동 기술(OT): 의료기기, 프로세스 제어 및 키오스크와 같은 비 IT 회사에 의해 구축 , 임베디드 IT를 포함하는 기계/가전제품
    • 개인기술: 소비자들에 의해 IT 장치로써 구매되는 스마트폰 태블릿 등, 반드시 무선 연결 이용.
    • 센서/구동장치 기술: 단일-목적용 장치, 반드시 무선 연결 이용. 더 큰 시스템의 일부분이며 일반적으로 단일형태.

Deeply Embedded Systems

  • 임베디드 시스템의 일종
  • 동작이 프로그래머나 사용자에 의해 파악하기 어려운 프로세서를 가짐
  • 장치를 위한 프로그램 논리가 ROM에 저장되면 그 장치는 더이상 프로그래밍 할 수 없음.
  • 예로는 온도 센서와 기압 센서 등이 있음.

ARM

  • RISC 설계 원리로부터 진화되어 온 프로세서 구조로 임베디드 시스템에서 사용됨.
  • RISC-기반 마이크로프로세서들과 마이크로컨트롤러 계열(family)
  • 칩들은 다이(die)의 크기가 작고, 저전력 소모로 알려진 고속의 프로세서들

클라우드 네트워킹(Cloud Networking)

  • 클라우드 컴퓨팅이 가능하도록 준비되어야 하는 네트워크 및 네트워크 관리 기능
  • 클라우드를 액세스 하는데 필요한 네트워크 설비들의 집합

클라우드 저장장치(Cloud Storage)

  • 클라우드 컴퓨팅의 서브셋
  • 클라우드 서버에 의해 원격으로 호스트 되는 데이터베이스와 데이터베이스 응용들로 구성
  • 클라우드 서비스의 세가지 모델
    1. Iaas(Infrastructure as a Service):
      • 클라이언트가 관리하는 부분: 어플리케이션, 어플리케이션 프레임워크, 컴파일러, 런타임 환경, 데이터 베이스
      • CSP가 관리하는 부분: OS, 가상머신, 서버 하드웨어, 저장공간, 네트워킹
    2. PaaS(Platform as a Service):
      • 클라이언트가 관리하는 부분: 어플리케이션
      • CSP가 관리하는 부분: 어플리케이션 프레임워크, 컴파일러, 런타임 환경, 데이터 베이스, OS, 가상머신, 서버 하드웨어, 저장공간, 네트워킹
    3. SaaS(Software as a Service):
      • 클라이언트가 관리하는 부분: 없음
      • CSP가 관리하는 부분: 어플리케이션, 어플리케이션 프레임워크, 컴파일러, 런타임 환경, 데이터 베이스, OS, 가상머신, 서버 하드웨어, 저장공간, 네트워킹
  • 어플리케이션, 어플리케이션 프레임워크, 컴파일러, 런타임 환경, 데이터 베이스, OS, 가상머신, 서버 하드웨어, 저장공간, 네트워킹을 클라이언트와 클라우드 서비스 제공자(CSP)가 나눠서 관리