[CS] CPU 파이프라인
·
Computer Science
명령어 파이프라인이란? 하나의 명령어 사이클을 여러 단계로 나누고 각 단계에서 동시에 다른 세부 작업을 처리하도록 설계하는 것이다. 파이프라인을 이용해 CPU 성능을 높일 수 있다. CPU 기본 실행 구조 Instruction Fetch(인출) 실행할 명령어를 메모리에서 읽어 CPU로 가져온다. Instruction Decode(해석) 인출한 명령어에 포함된 데이터를 가져오고, 명령어를 해독한다. Instruction Execution(실행) 명령어 실행 Writeback(저장) 실행 결과를 저장한다. 위의 4단계의 실행 구조가 기본이다. 이 4개의 단계로 파이프라인을 적용하면 어떻게 되는지 알아보자. 아래 4개 단계의 명령어를 실행할 때 파이프라인 적용 유무에 따라 어떻게 달라지는지 알아보자 IF : ..
[CS] CPU의 구조와 동작 원리, 데이터 접근
·
Computer Science
CPU란? Central Processing Unit의 약자이고, 한국말로는 중앙 처리 장치라고 한다. CPU는 컴퓨터에서 기억, 해석, 연산, 제어라는 4대 주요 기능을 처리하는 장치이다. 컴퓨터에서 돌아가는 프로그램의 명령어를 해석하여 데이터를 연산, 처리하고 제어하는 기능을 한다. 기억 : 연산에 필요한 데이터, 연산 결과, 명령어 주소 등을 임시로 저장한다. 해석 : 프로그램의 명령어를 해석한다. 연산 : 덧셈, 뺄셈, 곱셈 등의 산술 연산과 논리곱, 논리합 등의 논리 연산을 수행한다. 제어 : 명령어를 순서대로 실행할 수 있도록 제어한다. CPU의 구조 레지스터(Register) CPU 내부에 있는 메모리로, 명령어 주소, 코드, 연산에 필요한 데이터, 연산 결과 등을 임시로 저장한다. 다른 모..
[CS] 메모리 계층과 저장 장치(RAM, Register,Cache, HDD)
·
Computer Science
메모리 계층 아래 그림에서 볼 수 있는 여러 가지 기억장치들을 통해 CPU가 데이터를 읽고 쓰는 일을 한다. 이때, 접근 속도가 빠른 순서대로 메모리에 접근하여 데이터를 읽고 쓰는 등의 일을 처리하는데, 이를 메모리 계층이라고 한다. RAM (Random Access Memory) RAM은 Random Access가 가능한 메모리이다. 즉, '임의 접근'을 할 수 있는 메모리이다. 따라서 원하는 위치에 순차적으로 접근하지 않고 바로 접근하여 데이터를 읽고 쓰고 지울 수 있다. 이 Random Access라는 용어는 어느 위치든지 똑같은 속도로 접근하여 읽고 쓸 수 있다는 뜻이다. RAM은 컴퓨터가 켜지는 순간부터 꺼지기 전까지 CPU가 연산을 하고 동작을 하는데에 필요한 모든 내용이 저장되는 공간이다. ..
[CS/디지털논리회로] 덧셈기(adder), 반 가산기, 전 가산기
·
Computer Science
1과 0의 덧셈 연산 0과 1을 더하면 아래 그림과 같은 결과가 나온다. 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 sum과 carry 위의 그림에서 1과 1을 더했을 때는 10이 된다. 이를 이진수로 나타낼 때는 한자리에 10을 쓸 수 없기 때문에 sum비트와 carry비트로 나누어서 10을 처리해준다. sum 비트는 위와 똑같이 덧셈 연산을 하고, carry 비트는 10과 같이 자릿수가 달라졌을 때만 1을 담는다. 논리게이트로 나타낸 덧셈기 XOR 게이트로 sum을, AND 게이트로 carry를 나타낼 수 있다. 두개의 논리게이트를 이용하여, sum, carry를 표현한다. 각각 하나의 bit인 A와 B를 통해 합 sum과 올림수 carry를 출력하는 조합 논리회로를 만..
[리눅스] 파일 복사, 하드 링크와 소프트 링크
·
Computer Science
파일 복사와 링크 리눅스에는 파일을 복사할 수도 있고, 링크할 수도 있다. 복사는 말그대로 A라는 파일의 데이터와 같은 데이터를 가진 새로운 파일 B를 만들어 내는 것이고, 링크는 A라는 파일을 가리키는 B라는 파일을 새롭게 만들어내는 것이다. 파일 복사시에는 A파일과 B파일이 각각 다른 메모리를 차지하게 되고, 링크 시에는 메모리는 원본파일 A의 메모리와 B가 가리키는 메모리가 같다. 파일 복사 cp 명령어를 이용해서 파일을 복사할 수 있다. cp [복사할 파일명] [새로 만들 파일명] ex1) 파일 복사 같은 폴더 내에서 파일을 복사한다. cp list.txt list_copy.txt ex2) 폴더 복사 폴더와 해당 폴더 하위의 모든 파일을 복사한다. 폴더 생성 mkdir folder1 폴더 복사 c..
[CS/디지털 논리 회로] 논리 게이트
·
Computer Science
논리회로 부울 대수(Boolean algebra)를 이용하여 1개 이상의 논리 입력을 받아, 1개의 논리 출력을 얻는 회로이다. 1과 0 (true, false)로 두 개의 입력을 받아서 그 결과로 하나의 1 또는 0의 출력을 반환한다. 이런 것을 논리 게이트라고 한다. 이러한 논리 게이트 여러 개를 조합하여 복잡한 연산도 할 수 있게 된다. 이런 논리 게이트는 어떤 것들이 있는지 알아보자. AND 게이트 AND 게이트는 두개의 입력이 모두 TRUE일 경우에만 출력이 TRUE가 나온다. 이외의 경우에는 모두 FALSE가 나온다. A 그리고(and) B가 모두 맞을때만 TRUE라고 생각하면 되겠다 OR 게이트 OR 게이트는 두개의 입력 중 하나만 TRUE여도 출력이 TRUE가 나온다. 반대로 생각하면, 두..
[ComputerScience / 디자인 패턴]싱글톤 패턴(singleton pattern)
·
Computer Science
싱글톤 패턴(singleton pattern) 프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴 전역변수를 사용하지 않고 객체를 하나만 생성하도록 하고, 생성된 객체를 어디에서든지 참조할 수 있도록 하는 패턴이다. 하나의 인스턴스만을 생성하여 클래스 내부에 private static으로 지정해 두고 getInstance 메서드로 모든 클라이언트에게 동일한 인스턴스를 반환한다. 어떠한 클래스가 유일하게 1개만 존재해야 할 때 사용한다. 하나의 자원을 서로 공유해야 할 때 주로 사용한다. 싱글톤 패턴을 사용하는 이유 객체를 생성할 때마다 메모리 영역을 할당받지 않기 때문에, 메모리낭비를 방지할 수 있다. 싱글톤으로 구현한 인스턴스는 '전역' 이므로, 다른 클래스의 인스턴스들이 데..
[프로그래밍 이론] 객체지향 4대 특성(캡슐화, 상속, 다형성, 추상화), 5 원칙(SOLID)
·
Computer Science
객체지향의 4대 특성 : 캡슐화, 상속, 다형성, 추상화1. 캡슐화 ( Encapsulation )객체의 속성(Variable)을 보호하기 위해 사용한다.객체와 객체간의 의사소통을 위해 필요한 정보만을 노출한다.실제 내부 구현 정보는 숨긴다.Method 설계자신이 가지고있는 속성에 대해서는 해당 상태를 변경하는 기능을 제공해야 한다.실물 객체가 가진 기능을 모두 제공해야 한다.각각의 Method는 서로 관련성이 있어야 한다.  ( getter - setter ) (add - delete ) 등Getter / Setter : 외부에서 내부 속성에 직접 접근하지 못하도록 사용CRUD Method : 데이터 처리를 위한 기본적인 CRUD  Method 제공Business Logic Method : 비즈니스 로..