입출력장치 장치 컨트롤러와 드라이버 CPU - 입출력장치 정보 주고받기 입출력장치는 CPU, 메모리에 비해 다루기 까다롭다. 1. 입출력장치에는 종류가 너무 많다. - 장치가 다양하면 장치마다 속도, 데이터 전송 형식 등도 다양하다. - 다양한 입출력장치와 정보를 주고받는 방식을 규격화하기 어렵다. 2. 일반적으로 CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮다. 전송률(transfer rate): 데이터를 얼마나 빨리 교환할 수 있는지를 나타내는 지표 장치 컨트롤러 위와 같은 이유로 입출력장치는 장치 컨트롤러를 통해 컴퓨터와 연결된다. 입출력장치는 장치 컨트롤러를 통해 컴퓨터 내부와 정보를 주고받는다. ex) 입출력 제어기 (I/O controller), 입출력 모듈(I/O ..
컴퓨터 구조
다양한 보조기억장치 하드 디스크 - 자기적인 방식으로 데이터 저장 - 크게 스핀들과 플래터로 구성 - 일반적으로 플래터 양면 모두 사용 - RPM (Revolution Per Minute): 분당 회전수 - 스핀들은 플래터를 회전시킨다 - 플래터 안에는 수많은 N극과 S극이 존재 - 일반적으로 여러 겹으로 구성되어있다. HDD는 일반적으로 SSD보다 느리고 내구성이 낮습니다. 그러나 여전히 한 가지 큰 이점이 있습니다. 바로 용량입니다. 보조 스토리지 드라이브로 사용할 경우 HDD는 기본 SSD에 저장하기에는 부담스로운 데이터를 저장할 수 있도록 테라바이트 단위의 공간을 저렴하게 제공해 줍니다. - 하드디스크의 장점 헤드 - 플래터로부터 아주 미세하게 떨어져있음 (플래터의 면마다 헤드 장착되어있음) - ..
RAM RAM의 특성과 종류 주기억장치의 종류에는 크게 RAM과 ROM 두 가지가 있고, 메모리라는 용어는 그 중 RAM을 지칭하는 경우가 많다. RAM은 실행할 대상을 저장한다. 전원이 꺼지면 저장한 내용이 사라진다. 이는 보조기억장치에 저장함. RAM은 휘발성 저장 장치이고, 보조기억장치는 비휘발성 저장 장치이다. RAM 용량이 크면 좋은 점 RAM의 용량은 컴퓨터 성능에 어떤 영향을 미칠까 - 메모리 성능의 지표가 되는 요소는 메모리 레이턴시, 메모리 쓰루풋 및 대역폭, 메모리 레벨 병렬처리가 있다. - 하지만 RAM 용량이 크면 많은 프로그램들을 동시에 실행하는 데 유리하다. DRAM, SRAM, SDRAM, DDR SDRAM DRAM (Dynamic RAM) - Dynamic = '동적의' - ..
더욱 빠른 CPU 빠른 CPU를 위한 설계 기법 클럭 - 컴퓨터의 모든 부품을 일사불란하게 움직일 수 있게 하는 시간 단위 1. 컴퓨터 부품들은 클럭 신호에 맞춰 일사불란하게 움직인다. 2. CPU는 명령어 사이클이라는 정해진 흐름에 맞춰 명령어들을 실행한다. 클럭 신호가 빠르게 반복되면 CPU를 비롯한 컴퓨터 부품들은 그만큼 빠른 박자에 맞춰 움직일까? -> 일반적으로는 그렇다. 클럭 속도 - 클럭 속도: 헤르츠(Hz) 단위로 측정 - 헤르츠(Hz): 1초에 클럭이 반복되는 횟수 - 클럭이 똑-딱 하고 1초에 한 번 반복되면 1Hz - 클럭이 1초에 100번 반복되면 100Hz Max 4.9GHz Base 2.5GHz -> 1초에 최대 49억번, 기본적으로 25억번 반복된다 클럭 신호를 마냥 높이면 C..
CPU - CPU는 컴퓨터구조에 있어서 중요한 부품 중 하나이다. ALU와 제어장치 - ALU(Arithmatic Logic Unit)는 연산을 수하는 장치 - 제어장치는 제어 신호를 발생시키고 명령어를 해석하는 장치 ALU가 받아들이는 정보 - 계산을 하기 위해서는 피연산자와 수행할 연산이 필요 - 레지스터에서 피연산자를 받아들인다. - 제어장치로부터 제어 신호를 받아들인다. ALU가 내보내는 정보 - 결과값 - 플래그 값 결과값을 레지스터에 저장하는 이유 - CPU에서 메모리로 접근하는 것보다 레지스터로 접근하는 것이 빠르기 때문이다. 플래그 - 연산 결과에 대한 부가 정보 제어장치 - 받아들이는 정보 클럭 - 컴퓨터의 모든 부품을 일사불란하게 움직일 수 있게 하는 시간 단위 해석할 명령어 - 플래그..
소스 코드와 명령어 고급 언어와 저급 언어 고급 언어: 개발자가 읽고 쓰기 편하게 만들어진 언어 저급 언어: 컴퓨터가 명령을 이해하고 실행할 수 있도록 만들어진 언어 저급 언어 - 기계어와 어셈블리어가 있음 - 기계어는 0과 1로 이루어진 명령어로 구성된 저급 언어이다. - 어셈블리어는 0과 1로 이루어진 기계어를 읽기 편한 형태로 번역한 저급 언어이다. 고급 언어(c, c++ python, java 등) 고급 언어가 저급 언어로 변환되는 방식은 두 가지가 있다. 컴파일과 인터프리트 방식 컴파일 언어 고급 언어 -> 컴파일 -> 저급언어 소스 코드 -> 컴파일러 -> 목적 코드 - 컴파일 언어로 작성된 소스 코드는 컴파일러에 의해 저급 언어로 변환되고 (이 과정을 컴파일이라고 한다.) 컴파일 결과로 저급..
컴퓨터가 0과 1로 숫자와 문자를 표현하는 방법 컴퓨터가 0과 1로 숫자를 표현하는 방법 컴퓨터는 0과 1로 숫자를 표현할 수 있다. 전기를 이용해 컴퓨터를 동작시키기 때문인데, 전기가 흐르면 1, 흐르지 않으면 0이 된다. 이 때문에 컴퓨터에서는 2진법을 사용한다. 한 개의 비트로는 2가지의 상태밖에 표현할 수 없다. 더 많은 숫자 (또는 상태)를 표현하기 위해서는 많은 스위치를 연결하면 된다. 위 그림에서 0000은 0, 1000은 8, 1100은 12, 1111은 15를 나타낸다. 정보 단위 - 비트(bit): 0과 1을 표현하는 가장 작은 단위 - n비트로 2^n가지의 정보 표현 가능 - 프로그램은 수 많은 비트로 이루어져 있다. - 하지만 "이 파일은 9876543210비트야"라고 말하지는 않는..
컴퓨터의 핵심 부품 4가지 컴퓨터의 핵심 부품 4가지에 대해 러프하게 정리해보았다. 컴퓨터의 핵심부품1 메모리(주기억장치) - 메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품이다. - 프로그램이 실행되기 위해서는 메모리에 저장되어 있어야 한다. - 메모리는 실행되는 프로그램의 명령어와 데이터를 저장한다. - 메모리에 저장된 값의 위치는 주소로 알 수 있다. 컴퓨터의 핵심부품2 CPU (central processing unit) - CPU는 메모리에 저장된 명령어를 읽고 해석하고 실행하는 부품이다. - CPU 내부에는 ALU, 레지스터, 제어장치가 있다. (실제로는 더 많은 부품이 있는 매우 정교한 부품이지만, 크게 3가지로 볼 수 있다) - ALU(산술 논리 연산 장치): 계산기 - ..
컴퓨터 구조 컴퓨터 구조를 배워야 하는 이유는 다음과 같다고 한다. 1. 성능, 비용, 용량에 맞는 개발을 할 수 있다. 2. 컴퓨터를 내려다보며 문제를 해결할 수 있는 개발자가 될 수 있다. (문제 해결 능력 배양) 컴퓨터 구조는 결국 성능, 용량, 비용에 대한 이야기이다. 따라서 프로그래밍 언어의 문법만으로 해결하기 어려운 문제들을 해결(또는 고려)할 수 있다. 컴퓨터 구조에서 배우는 것은 크게 두 가지 1. 컴퓨터가 이해하는 정보 (데이터와 명령어) 1-1. 데이터: 숫자, 문자, 이미지, 동영상과 같은 정적인 정보 컴퓨터와 주고받는/내부에 저장된 정보를 데이터라고 통칭하기도 한다. 0과 1로 숫자를 표현하는 방법 0과 1로 문자를 표현하는 방법 1-2. 명령어 컴퓨터는 결국 명령어를 처리하는 기계..