728x90
반응형
SMALL

CS/컴퓨터구조 10

[컴퓨터구조] CPU와 장치 컨트롤러가 정보를 주고 받는 방법

1. 프로그램 입출력: 프로그램 속 명령어로 입출력장치를 제어하는 방법CPU가 프로그램 속 명령어를 실행하는 과정에서 입출력 명령어를 만나면 CPU는 입출력장치에 연결된 장치 컨트롤러와 상호작용하며 입출력 작업을 수행한다.CPU가 장치 컨트롤러의 레지스터 값을 읽고 씀으로써 이루어진다. 1.1 CPU가 여러 장치 컨트롤러 속 레지스터들의 위치를 아는 방법메모리 맵 입출력: 메모리에 접근하기 위한 주소 공간과 입출력장치에 접근하기 위 한 주소 공간을 하나의 주소 공간으로 간주하는 방법CPU는 메모리의 주소들이나 장치 컨트롤러의 레지스터들이나 모두 똑같이 메모리 주소를 대하면 된다.1024개의 주소를 표현할 수 있는 컴퓨터가 있을 때 1024개 전부 메모리 주소를 표현하는 데 사용하지 않고 512개는 메모리..

CS/컴퓨터구조 2024.11.26

[컴퓨터구조] 입출력장치의 모든 것

입출력 장치입출력장치는 마이크, 스피커, 프린터, 마우스, 키보드처럼 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환하는 장치를 의미한다.  1. 특징1.1 입출력장치에는 종류가 너무나도 많다.장치마다 속도, 데이터 전송 형식 등도 다양해 입출력장치와 정보를 주고받는 방식을 규격화하기가 어렵다. 1.2 CPU와 메모리의 데이터 전송률(데이터를 얼마나 빨리 교환할 수 있는지를 나타내는 지표)은 높지만 입출력장치의 데이터 전송률은 낮다.CPU와 메모리처럼 전송률이 높은 장치는 1초에도 수많은 데이터를 주고받을 수 있지만, 키보드나 마우스와 같이 상대적으로 전송률이 낮은 장치는 같은 시간 동안 데이터를 조금씩만 주고받을 수 있다.  2. 장치 컨트롤러 (입출력 제어기, 입출력 모듈)모든 입출력장치는 각자의 ..

CS/컴퓨터구조 2024.11.25

[컴퓨터구조] RAID 끝내기

RAID어마어마한 정보량을 보조 기억 장치에 저장하고 관리하는 방법을 말한다.데이터의 안전성 혹은 높은 성능을 위해 여러 개의 물리적 보조 기억 장치를 마치 하나의 논리적 보조 기억 장치처럼 사용하는 기술이다.즉, 여러 개의 하드 디스크나 SSD를 마치 하나의 장치처럼 사용하는 기술을 말한다. 1. RAID 0: 여러 개의 보조 기억 장치에 데이터를 하나씩 나누어 저장하는 구성 방식저장되는 데이터가 하드디스크 개수만큼 나뉘어 저장한다.스트라입: 줄무늬처럼 분산되어 저장된 데이터스트라이핑: 분산하여 저장하는 것장점: 저장된 데이터를 읽고 쓰는 속도가 빠름단점: 하드 디스크 중 하나에 문제가 생긴다면 다른 모든 하드 디스크의 정보를 읽는 데 문제가 생길 수 있어 정보가 안전하지 않음 2. RAID 1: 복사..

CS/컴퓨터구조 2024.11.24

[컴퓨터구조] 캐시 메모리 파헤치기

캐시 메모리CPU와 메모리 사이에 위치하고, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치를 말한다.주기억장치보다 용량이 훨씬 작지만 훨씬 빠르다. 1. 탄생 배경CPU가 매번 메모리에 왔다 갔다 하는 건 시간이 오래 걸리니, 메모리에서 CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가지고 와서 활용하기 위해 만들어졌다. 1.1 주요 용도CPU 성능 최적화: CPU가 자주 사용하는 데이터를 캐시에 저장하여 접근 속도를 높임.메모리 병목 현상 감소: RAM과 CPU 간 속도 차이로 인해 발생하는 병목을 줄임.전력 소비 절감: CPU가 느린 RAM에 반복적으로 접근하지 않도록 하여 전력 소모를 줄임.  2. 종류컴퓨터 내부에는 여러 개의 캐시 메모리가 있으며 CPU와 가까운 순서대로..

CS/컴퓨터구조 2024.11.23

[컴퓨터구조] 주기억장치에 대해 알아보자

주기억장치프로그램이 실행되려면 반드시 메모리에 저장되어 있어야 한다.메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품이다. 컴퓨터가 빠르게 작동하기 위해서는 메모리 속 명령어와 데이터의 위치는 정돈되어 있어야 하며 메모리에 저장된 값의 위치는 주소로 알 수 있다.실행 중인 프로그램들은 메모리에 저장되는데 메모리는 전원이 꺼지면 저장된 내용이 날아간다.  1. 종류1.1 RAM전원을 끄면 RAM에 저장된 명령어와 데이터가 모두 날아가기 때문에 RAM에는 실행할 프로그램의 명령어와 데이터가 저장된다.CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 이를 RAM으로 복사하여 저장한 후 실행한다.RAM 용량이 크면 보조기억장치에서 많은 프로그램들을 동시에 빠르게 실행하는 데 유리할 뿐 비례..

CS/컴퓨터구조 2024.11.22

[컴퓨터구조] 보조기억장치의 정의와 종류 (하드 디스크, 플래시 메모리)

보조기억장치전원이 꺼져도 저장된 내용을 잃지 않는(비휘발성) 메모리를 보조할 저장장치를 말한다.메모리보다 크기가 크고 저장 용량 대비 비용이 저렴하여 대규모 데이터 저장에 적합하다.주기억장치에 비해 읽기/쓰기 속도가 느리며 CPU가 직접 접근하지 않고, 입출력 장치(I/O)를 통해 데이터를 교환한다.보조기억장치에는 수명이 있다.  1. 하드 디스크 (HDD, 자기 디스크)자기적인 방식으로 데이터를 저장하는 보조기억장치를 말한다.여러 겹의 플래터로 이루어져 있으며 플래터 양면을 모두 사용 가능하다. 1.1 구성플래터: 실질적으로 데이터가 저장되는 곳, 동그란 원판 모양 부품자기 물질로 덮여있어 수많은 N극과 S극을 저장 (N극과 S극은 0과 1의 역할을 수행)트랙과 섹터라는 단위로 데이터를 저장트랙: 플래..

CS/컴퓨터구조 2024.11.21

[컴퓨터구조] CPU 설계 방식을 알아보자.

명령어로 할 수 있는 연산, 주소 지정 방식 등은 CPU마다 조금씩 차이가 있다.똑같은 코드로 만든 프로그램임에도 CPU가 이해하고 실행할 수 있는 명령어가 달라 어셈블리어도 다를 수 있다. 명령어 집합 설계 (Instruction Set Architecture, ISA)명령어 집합이란 CPU가 이해할 수 있는 명령어들의 모음을 말한다.실행 파일은 명령어로 이루어져 있고 서로의 컴퓨터가 이해할 수 있는 명령어가 다르기 때문에 CPU마다 ISA가 다를 수 있다.ISA는 명령어 병렬 처리 기법들을 도입하기 유리하다. 1. CSIC: 복잡하고 다양한 명령어들을 활용하는 CPU 설계 방식다양하고 강력한 기능의 명령어 집합을 활용하기 때문에 명령어의 형태와 크기가 다양한 가변 길이 명령어를 활용한다.다양하고 강력..

CS/컴퓨터구조 2024.11.19

[컴퓨터구조] CPU 3가지 구성요소에 대해 알아보자.

CPU는 메모리에 저장된 명령어를 읽어 들이고 읽어 들인 명령어를 해석하고 실행하는 부품을 여러 개 포함하는 부품이다. CPU는 산술논리 연산장치, 레지스터, 제어장치로 구성된다.  1. 산술논리 연산장치 (ALU)ALU는 계산을 수행하는 CPU의 핵심 부품이다.ALU는 산술 연산과 논리 연산, 두 가지 주요 작업을 처리한다. 1.1 받아들이는 정보피연산자: 레지스터로부터 받아들인다.제어 신호: 제어장치로부터 받아들이며 수행할 연산을 알려준다. 1.2 내보내는 정보연산을 수행한 결과는 특정 숫자나 문자가 될 수도 있고 메모리 주소가 될 수도 있다.이 결괏값은 바로 메모리에 저장되지 않고 일시적으로 레지스터에 저장된다.ALU는 계산 결과와 더불어 플래그(추가 정보)를 보낸다. 1.3 플래그플래그는 연산 결..

CS/컴퓨터구조 2024.11.18

[컴퓨터구조] 컴퓨터 하드웨어 구성

컴퓨터 시스템은 하드웨어와 소프트웨어로 구성된다. 하드웨어: 데이터를 처리하는 물리적인 기계장치 소프트웨어: CPU에게 어떤 작업을 지시하는 명령어로 작성된 프로그램 그리고 운영체제 (OS, Operating System)은 컴퓨터 하드웨어를 관리하는 소프트웨어이다. 컴퓨터 하드웨어는 크게 프로세서, 메모리(기억장치), IO 장치로 구성되고, 이들은 시스템 버스로 연결된다. 하드웨어 실체가 있는(시각적으로 보이면서도 만질 수 있는), 컴퓨터의 모든 물리적인 부품을 통틀어 의미한다. ※ 예를 들어, Windows를 사용하기 위한 노트북 혹은 Android/iOS 사용을 위한 스마트폰, 그 외 모니터, 키보드 마우스 등이 모두 하드웨어 IT 기업은 대고객 서비스를 위한 엔터프라이즈 급의 고성능 하드웨어를 주..

CS/컴퓨터구조 2023.12.08

[컴퓨터구조] 시스템 프로그래밍

시스템 프로그래밍(System Programming)이란? 시스템 프로그램은 컴퓨터 시스템을 동작시키는 또는 활용하는 소프트웨어 개발 프로그램을 말한다. Windows 운영체제 기반의 컴퓨터에게 일을 시키기 위한 프로그램을 구현하는 것으로 하드웨어를 사용할 수 있도록 도와주는 프로그램이다. 예로 Windows, Unix 와 같은 운영체제들이 있다. Windows나 UNIX와 같은 운영체제에서 제공하는 라이브러리(운영체제의 기능을 활용할 수 있는 시스템 함수들의 집합)를 사용하여 프로그램을 개발하는 개발자들도 시스템 프로그래머라고 부를 수 있다. 또한 어셈블리 언어나 C 언어를 이용하여 하드웨어를 직접 컨트롤하는 개발자들도 시스템 프로그래머라고 부른다. 시스템 프로그래밍의 폭 넓은 정의 → 특정 운영체제 ..

CS/컴퓨터구조 2023.12.05
728x90
반응형
LIST