-
1. 컴퓨터의 시작 - 컴퓨터를 구성하는 요소IT 기술 2021. 4. 30. 23:19
컴퓨터의 시작
우리는 이제부터 컴퓨터에 관한 지식을 쉽게 배워볼려고 합니다. 컴퓨터는 2차 세계 대전 때 탄생하게 됩니다. 미국 정부는 미사일의 움직임을 정확하게 계산할 수 있는 기기가 필요하게 됬고 이를 만들고자 하면서 컴퓨터가 시작됩니다. 이에 만들어진 최초의 컴퓨터가 애니악입니다.
애니악은 당시 크기가 집채만 했다고 합니다. 이렇게 큰 이유가 컴퓨터를 이루는 부품이 진공관이였는데 진공관치 차지하는 부피와 발열량이 엄청났다고 합니다. 그 후 이를 보완하기 위해 트랜지스터라는 것을 개발하여 획기적으로 크기를 작게 하였고 스티븐 잡스와 스티브 워즈니악이 개인용 컴퓨터를 만들어 냈습니다.
컴퓨터를 얘기할 때 빠질 수 없는 얘기가 운영체제입니다. 운영체제는 컴퓨터라는 하드웨어를 돌아가게 하는 엔진입니다. 엔진도 하드웨어이니 엔진보다 규칙에 가깝긴 합니다. 운영체제는 이 당시 UNIX가 가장 대표적이였습니다.
개인용 컴퓨터를 위한 OS가 빌 게이츠에 의 DOS라는 운영체제가 탄생하기 됩니다. 엄밀히 말하면 빌 게이츠가 만든 것은 아니지만 패스하도록 하겠습니다. 후에 이 DOS는 MS-DOS로 발표됩니다. DOS는 Disk Operation System.의 약어입니다. 디스크를 운영하는 시스템입니다. 이를 해석하면 디스크는 저장 장소로서 데이터들이 저장되어 있는 곳입니다. 디스크에는 정보 뿐만 아니라 프로그램도 들어 있었고 프로그램은 특정 동작을 할 수 있게끔 컴퓨터의 명령어들을 모아둔 것입니다.
프로그램은 특정 기능을 수행하도록 하는 컴퓨터의 명령어와 정보의 모음입니다. 이 프로그램과 데이터가 저장되어 있는 디스클 운영해주는 시스템이 운영체제입니다.
컴퓨터는 단순히 말하면 연산 능력을 가진 시스템입니다. 쉽게 보면 계산기라고도 볼 수 있습니다. 컴퓨터의 내부를 보면 계산만 하고 있기 때문입니다. 0과 1이라는 비트의 반복이 계속 될 뿐이죠. 2진수는 정보를 저장하고 표현하기 위한 방법으로 불이 꺼졌다 켜졌다라는 개념으로 도입되게 되었고 이를 이용해 컴퓨터는 모든 숫자 또는 모든 문자 또는 모든 정보를 저장합니다.
컴퓨터를 구성하는 요소
컴퓨터 내부를 단순하게 보면 4가지로 구성된다고 할 수 있습니다. CPU, 메모리, 디스크, IO입니다.
CPU는 연산장치입니다. CPU는 무언가를 열심히 계산하고 프로그램이라는 것에 속해 명령을 열심히 수행하고 있습니다. 우리가 마우스를 클릭하는 순간 컴퓨터는 내부적으로 어떤 프로그램을 실해아는 명령을 내릴 것입니다. 그 명령어가 실행되고, 해당하는 프로그램의 명령들은 CPU는 열심히 수행합니다. 그렇기에 CPU의 연산처리 능력은 얼마나 빠르냐가 중요합니다.
CPU의 연산처리 속도를 이야기할 때 헤르츠 단우로 표현을 하는데 4.0GHz 이 헤르츠는 진동수, 클럭수입니다. CPU가 떨어서 발생하는 진동의 의미가 아니라 CPU가 명려을 받기 위해서는 그 명령어가 넘어가는 처리를 해줘야 하는데 이게 클럭입니다. 한 명령어를 처리하고 다음 명령을 들어오게 해줍니다. 이게 빠르면 빠를 수록 CPU가 얼마나 빠른 속도로 명령어를 처리할 수 있는지가 정해집니다. 물론 클럭수가 빠르다고 CPU가 빠르게 계산할 수 있는 것은 아니지만 빠르게 넘겨줘야 빠르게 처리하니 빠른 클럭이 의미가 있습니다.
CPU 계산처리 시간을 감안해서 클럭수는 정해져서 출시됩니다. 간혹 오버 클럭이라는 말을 쓰는데 이는 클럭을 반 강제로 빠르게 하는 것입니다. CPU가 더 많은 일을 처리할 수 있게 설정 해서 성능 향상을 꾀하는 것입니다. 하지만 너무 과하게 사용하면 CPU에 과부하가 와 망가질 수 있습니다.
CPU와 바로 연결되는 것은 내부적으로 BUS이지만 크게 봤을 때는 메모리입니다. 쉽게 보면 메모리와 바로 연결이 되어있다고 볼 수 있습니다. 메모리에는 지금 당장 실행을 해야하는 명령어가 담겨져 있습니다. CPU가 일을 한다면 해당하는 일거리를 잠깐 저장해놓는 것입니다. 우리는 여기서 잠깐 저장해놓는다는 말을 잘 이해할 필요가 있습니다. 말 그대로 잠깐이기에 없어질 수도 있고 다음 명령어가 차지할 수도 있습니다. 이런점이 메모리와 디스크의 차이입니다.
디스크에는 파일들이 저장되고 파일은 사용자가 삭제하거나 디스크에 문제가 발생하지 않는 이상 반영구적으로 유지됩니다.
CPU의 구성 및 종류
CPU(Central Processing Unit), 메모리, 디스크 이 3가지는 컴퓨터를 이루는 3대 구성입니다. 여기에 I/O를 추가하면 그 것이 컴퓨터를 이루는 기본 골격이라고 할 수 있습니다. 이때 CPU는 각종 연산을 수행하고 기억장치에 기억되어 있는 명령어들을 수행하는 컴푸터 시스템을 이루는 핵심 부품입니다.
CPU의 속도인 헤르츠와 클럭 CPU는 수를 계산하는 칩으로 이해하면 됩니다. 대개 컴퓨터의 성능을 CPU의 속도와 메모리의 용량으로 표현할 수 있습니다. Hz는 통신 분야에 사용되는 주파수와 같은 의미인데 1초에 몇번 진동하는 가라는 의미를 갖고있는 헤르츠로서 CPU에 전기적 신호가 초당 공급되는 횟수라는 개념으로 Hz를 사용합니다. 이 때 CPU에 전기적으로 공급되는 신호를 Clock이라고 합니다. Clock은 일정 볼트로 주기적으로 신호를 발생합니다. 그러면 CPU는 이 신호를 받고 데이터를 주거나 받아 처리하게 됩니다. 이 신호 한 번에 의해서 CPU에서 한 개의 명령이 처리 됩니다. 즉 쉽게 말하면 빠르게 신호가 들어온다는 것은 결국 빠른 속도의 처리 능력을 갖는 CPU라는 것을 알 수 있습니다. 요약하자면 CPU의 속도는 Hz로 나타내고 이 Hz가 높으면 속도가 빠른 CPU라는 것입니다.
CPU의 내부 구성은 크게 산술/논리 연산 장치인 ALU와 제어장치와 레지스터로 구성되어 있습니다. 산술은 덧셈을 수행하는 것이고, 제어장치는 시그널을 통해서 데이터 흐름을 통제하는 것이며, 레지스터는 CPU 내부의 메모리입니다.
ALU(Arithmetic Logic Unit)은 산술적인 연산과 논리적인 연산을 담당하는 장치로 가산기, 보수기, 누산기, 기억 레지스터, 데이터 레지스터 등으로 구성 됩니다. 캐시나 메모리로부터 읽어 온 데이터는 레지스터라는 CPUJ 전용의 기억장소에 저장되며 ALU는 레지스터에 저장된 데이터를 이용하여 덧셈, 곱셈 등과 같은 산술 연산을 수행합니다.
(부동소수연산장치(FPU), 정수연산장치, 논리연산장치 등이 있다.)
제어장치는 CPU가 자신 및 주변기기들을 컨트롤 하는 장치로 프로그램의 수행 순서를 제어하는 프로그램 계수기, 현재 수행중인 명령어의 내용을 임시 기억하는 명령 레지스터, 명령 레지스터에 수록된 명령을 해독하여 수행될 장치에 제어 신호를 보내느 명령해독기로 이루어져있다.
레지스터는 중앙처리장치(CPU) 내부에 있는 기억장치이다. 주로 산술 연산 논리장치에 의해 사용되는 범용 레지스터와 PC 등 특수 목적에 사용되는 전용 레지스터로 구분할 수 있다. 레지스터의 종류로는 IR(Instruction Register)와 PC(Program Counter), AC(Accumulator)가 있다.
IR : 현재 수행 중에 있는 명령어 부호를 저장하는 레지스터
PC : 명령어 저장된 메모리의 주소를 가리키는 레지스터
AC : 산술 및 논리 연산의 결과를 임시로 기억하는 레지스터
명령어는 시스템이 특정 동작을 수행시키는 작은 단위이다. 명령어는 코드로 되어 있는데 동작코드와 오퍼랜드로 구성되어 있다.
명령어(Instruction = Operational Code + Operand
동작 코드(Op-code) : 각 명령어의 실행 동작을 구분하여 표현
오퍼랜드 : 명령어의 실행에 필요한 자료나 실제 자료의 저장 위치
CPU가 하나의 명령을 처리하는 과정
- 읽기(Fetch) : 메모리에서 명령을 가져옴
- 해석(Decode) : 명령을 해석
- 실행(Execute) : 명령을 수행
- 기록(Write Back) : 수행한 결과를 기록
명령어 처리 방식은 RISC와 CISC가 있는데 컴퓨터 내부적으로 사용하는 명령어 세트를 단순화 시켜서 처리하는 형태의 구조이다.
RISC(Reduced Instruction Set Computer) : 단순한 명령을 조합해서 하나의 기능을 수행 / 프로세스가 수행하는 시간을 결정하는 변수로는 명령어의 개수, 명령어당 평균 동작 단계의 수, 평균 시간을 곱한 것으로 계산할 수 있다.
CISC(Complex Instruction Set Computer) : 하나의 기능에 하나의 명령이 있는 개념 / 복잡하고 많은 명령어를 자체적으로 포함하는 내장 방식 프로세스로써 각 명령어마다 여러 Cycle에서 수행합다. 명령어 집합이 다양해 짐에 따라 프로세서 구조의 복잡도도 증가
RISC 한계를 극복하는 EPIC(Explicitly Parallel Instruction Computing)
RISC 기술은 여러 개의 명령어를 여러 개의 실행 유니트로 동시에 실행하는 것이 핵심입니다. 그렇기에 프로그램의 코드 수행이 선형으로 진행되고 실행 위치가 중간 조건에 따라 바뀌는 분기가 발생하는 문제가 빈번하고 이전의 실행 결과에 의해 다음 연산이 연계되어 진행되는 경우가 많다. 이처럼 RISC 방식은 한계가 존재한다. 이러한 병렬 처리 효율을 극대화할 수 있게 되는 명시적인 병렬처리 방식인 EPIC가 필요하다.
EPIC은 컴파일 시에 병렬 실행 가능한 명령어를 모아 실행 파일 생성 후 프로그램 생성시 병렬 처리가 가능하다는 의미이다.
컴퓨터 구조 + 운영체제
컴퓨터 구조는 크게 CPU, 메모리, 디스크로 이루어져 있습니다.
캐시 메모리 : CPU와 메모리 사이에 존재하면서 명령어르 빠르게 전달하기 위한 메모리
프로그램의 일부분이 메모리에 올라오게 되고 이를 프로세스라고 하며 메모리에는 여러 프로세스의 일부가 올라오게 됩니다.
가상 메모리는 디스크에 파일로 존재합니다. 메인 메모리의 가격이 비싼 관계로 많은 프로세스가 동시에 실행될 때 프로세스의 일부가 메인 메모리로 올라갈 때 매핑해서 사용하고 사용되어 지지 않는 일부를 SWAP하는 방식으로 내렸다가 올렸다가 하면서 메모리처럼 사용합니다.
스레싱 현상 : 많은 프로그램을 동시에 띄우면 컴퓨터가 갑자기 느려지는 현상
디스크가 여러개 있는 것을 RAID라 함.
'IT 기술' 카테고리의 다른 글
0. 누가 소프트웨어 개발을 잘 할 수 있는가? (0) 2021.04.30