일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 자바
- 딥러닝
- html/css
- 데이터분석
- 데이터베이스
- 연습문제
- 정수와유리수
- 정보처리기사필기
- 코딩테스트
- 중학1-1
- 중학수학
- 혼공머신
- 운영체제
- numpy/pandas
- pandas
- 데이터입출력구현
- 자바 실습
- C++
- CSS
- CNN
- 머신러닝
- JSP/Servlet
- 컴퓨터비전
- 파이썬라이브러리
- 파이썬
- 컴퓨터구조
- 텍스트마이닝
- 영어공부
- SQL
- 정보처리기사실기
- Today
- Total
목록전체 글 (1232)
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
이제 마지막 교시가 40분 정도 남아있을 뿐이지만 그래도 공부할 수 있는 데까지 해볼 것이다. 명령어를 빠르고 효율적으로 처리하기 위해 CPU를 한시도 쉬지 않고 작동시키는 명령어 병렬 처리 기법을 알아본다. 빠른 CPU를 만들려면 높은 클럭 속도에 멀티 코어, 멀티스레드를 지원하는 CPU를 만드는 것도 중요하지만, CPU가 놀지 않고 시간을 알뜰하게 쓰며 작동하게 만드는 것도 중요하다.이번 절에서는 명령어를 동시에 처리하여 CPU를 한시도 쉬지 않고 작동시키는 기법인 명령어 병렬 처리 기법을 알아본다. 대표적인 명령어 병렬처리 기법에는 명령어 파이프라이닝, 슈퍼스칼라, 비순차적 명령어 처리가 있다. 명령어 파이프라인명령어 파이프라인을 이해하려면 하나의 명령어가 처리되는 전체 과정을 비슷한 시간 간..
드디어 5장 학습을 시작해 본다. 4장에 이어 CPU에 대한 내용이 계속 이어진다. 클럭과 코어, 스레드라는 개념을 학습하고, 빠른 CPU를 만드는 설계 기법인 멀티코어와 멀티스레드란 무엇인지 배우게 된다. 클럭, 멀티코어, 멀티스레드라는 용어는 컴퓨터를 구매할 때 혹은 프로그램을 개발할 때 심심찮게 들어보았을 것이다. 이번 절에서는 이들이 각각 무엇인지 알아보고, CPU 속도와 어떤 관계가 있는지 학습해 보겠다. 클럭우리가 CPU를 설계하는 엔지니어라면 해야 할 일은 조금이라도 더 빠른 CPU를 만드는 일이다. 그렇다면 CPU를 어떻게 설계해야 할까? 클럭 속도가 높아지면 CPU는 명령어 사이클을 더 빠르게 반복할 것이고, 다른 부품들도 그에 발맞춰 더 빠르게 작동할 것이다. 실제로 클럭 속..
이제 4단원의 마지막 단원을 진행해 보겠다. 곧 점심시간이라 얼마 공부하지 못하겠지만 서론이라도 학습해 볼 것이다. CPU가 하나의 명령어를 처리하는 흐름인 명령어 사이클과 그 흐름을 방해하는 인터럽트에 대해 학습하게 된다.강의 자료의 화질이 너무 안 좋아서 상태를 봐서 책을 스캔해서 수정해야 할 것 같다. CPU가 하나의 명령어를 처리하는 과정에는 어떤 정해진 흐름이 있고, CPU는 그 흐름을 반복하며 명령어들을 처리해 나간다. 이렇게 하나의 명령어를 처리하는 정형화된 흐름을 명령어 사이클이라고 한다.CPU는 정해진 흐름에 따라 명령어를 처리해 나가지만, 간혹 이 흐름이 끊어지는 상황이 발생한다. 이를 인터럽트라고 한다. 명령어 사이클우리가 실행하는 프로그램은 수많은 명령어로 이루어져 있고, CP..
특정 레지스터를 이용한 주소 지정 방식은 두 가지가 있다. 하나는 스택 주소 지정이고, 다른 하나는 변위 주소 지정 방식인데 이제부터 차근차근 학습해 볼 것이다. 컴퓨터 구조는 처음 들어보는 용어들이 많아서 낯설고 많이 어렵다. 그래도 포기하지 않고 이틀째 공부를 계속하고 있다.아마 3일만에 이 책 전체를 다 마치는 건 불가능할 것 같고 목요일까지 4일에 걸쳐 학습해 보기로 일정을 수정해 본다. 특정 레지스터를 이용한 주소 지정 방식 1 : 스택 주소 지정 방식 스택 포인터는 스택 주소 지정 방시이라는 주소 지정 방식에 사용되고, 프로그램 카운터와 베이스 레지스터는 변위 주소 지정 방식이라는 주소 지정 방식에 사용된다. 먼저 스택 주소 지정 방식에 대해 알아보겠다.스택 포인터는 스택 마지막으로 저장한..
수학 공부를 마치고 나니 2교시가 끝났지만 이제 남은 2시간 동안 최대한 집중해서 4단원 학습을 진행해보려고 한다. 분량이 많기도 하고 어려운 내용이라 1시간씩 끝낼 수 있을지 장담할 수 없지만 그래도 최대한 빠르게 학습해 볼 것이다.레지스터의 종류와 역할을 학습하고 각 레지스터를 통해 명령어가 처리되는 과정을 이해하는 단원이다. ALU나 제어장치를 직접 다룰 일은 레지스터에 비해 적다. 하지만 레지스터 안의 값을 관찰하는 일은 생각보다 많다. 특히 저급 언어 개발자, 임베디드, 시스템 개발자들은 이 레지스터를 다룰 일이 훨씬 더 많다고 한다. 그러니 이 내용을 충분히 숙지하기로 하자. 프로그램 속 명령어와 데이터는 실행 전후로 반드시 레지스터에 저장된다. 레지스터에 저장된 값만 잘 관찰해도 프로그램의..
STEP A 과정이라 그런지 한 문제를 푸는데 한참 걸리고 난이도도 꽤 높았다. 어제와 오늘 이틀에 걸쳐서 푼 문제들을 학습일지에 올려본다. 어제는 시간이 없어서 2문제를 풀었고, 오늘은 아침에 시간을 내서 수학 공부를 진행했다. 내일까지는 꼭 STEP A 과정을 끝마쳐야 하는데 수학 공부를 하는 것도 내게 중요한 일과이기에 아침 공부를 잠시 미루고 문제를 풀었다. 에이급 수학 STEP A 문제 풀기 학습을 마치고그래도 공부를 하니 정말 뿌듯했다. 오늘은 1시간 반 이상 문제를 풀었다. 아침에 지각 없이 50분에 등교하니 여유로운 시간을 보낼 수 있어서 참 좋았다. 내일 나머지 15문제를 모두 풀어볼 것이다.
이번 시간부터 본격적으로 CPU에 대해서 들어가게 된다. CPU의 구성 요소 중 ALU와 제어 장치에 대해서 알아볼 것이다. ALU와 제어 장치가 어떤 정보를 내보내고 받아들이는지를 중심으로 두 장치의 역할을 학습한다. CU는 메모리에 저장된 명령어를 읽어 들이고 해석하고 실행하는 장치이다. 그리고 CU 내부에는 계산을 담당하는 ALU, 명령어를 읽어 들이고 해석하는 제어장치, 작은 임시 저장 장치인 레지스터라는 구성 요소가 있다고 학습했었다.이번에는 ALU와 제어 장치가 받아들이고 내보내는 정보를 기준으로 각 부품의 역할을 살펴보겠다. ALU 계산을 하기 위해 무엇이 필요할까? 1+2를 계산할 때 1과 2라는 피연산자와 더하기라는 수행할 연산이 필요하듯 ALU가 계산하기 위해서는 피연산자와 수행..
이 학습 내용은 책에는 없는 내용인데 따로 학습해 본다. C 언어가 컴파일되는 과정을 실습을 통해 직접 알아보려고 한다. 따로 책으로 학습을 진행했는데 강의가 있어서 이것도 함께 들으며 정리해 보았다. 목적 파일 VS 실행 파일목적 코드로 이루어진 파일을 목적 파일이라고 부른다. 마찬가지로 실행 코드로 이루어진 파일을 실행 파일이라고 부른다. 윈도우의. exe 확장자를 가진 파일이 대표적인 실행 파일이다.목적코드는 컴퓨터가 이해하는 저급 언어이다. 그렇다면 목적 파일과 실행 파일은 같은 의미일까? 그렇지 않다. 목적 코드가 실행 파일이 되기 위해서는 링킹이라는 작업을 거쳐야 한다. 링킹이 무엇인지 간단한 예시를 통해 알아볼 것이다. 예를 들어 캄파일 언어로 help.c와 main.c라는 두 개의 소스 코..
어제 학습하려고 했지만 오늘 새벽에 일어나 공부를 진행해 본다. 명령어의 구조와 주소 지정 방식을 학습하며 명령어의 생김새와 작동 원리를 이해하는 단원이다. 지난 시간에 기계어와 어셈블리어의 형태로 명령어를 접해보았다. 아직 기계어와 어셈블리어를 이루는 각각의 명령어를 자세히 들여다보지는 않았다. 이번 시간에 자세히 들여다보며 연산 코드, 오퍼랜드, 주소 지정 방식이라는 개념을 학습해 보겠다. 연산 코드와 오퍼랜드누군가에게 명령할 때 이렇게 말한다. 컴퓨터 속 명령어도 마찬가지다. 명령어는 무엇을 대상으로 어떤 작동을 수행하라는 구조로 되어 있다. 명령어는 연산 코드와 오퍼랜드로 구성되어 있다. 연산 코드는 명령어가 수행한 연산이고, 연산에 사용할 데이터가 저장된 위치를 오퍼랜드라고 한다. 연산 ..
개발자가 프로그래밍 언어로 작성한 소스 코드가 컴퓨터 내부에서 명령어가 되고 실행되는 과정을 학습해 볼 것이다. 컴퓨터를 작동시키는 정보가 명령어라면 C, C++, Java, Python과 같은 프로그래밍 언어로 만든 소스 코드는 무엇일까? 결론부터 말하면 모든 소스 코드는 컴퓨터 내부에서 명령어로 변환된다. 이번 절에서는 프로그래밍언어가 어떻게 명령어가 되어 실행되는지 알아보겠다. 고급 언어와 저급 언어우리가 프로그램을 만들 때 사용하는 프로그래밍 언어는 컴퓨터가 이해하는 언어가 아닌 사람이 이해하고 작성하기 쉽게 만들어진 언어이다. 컴퓨터는 이 언어를 이해하지 못한다. 이렇게 '사람을 위한 언어'를 고급 언어라고 한다.반대로 컴퓨터가 직접 이해하고 실행할 수 있는 언어를 저급 언어라고 한..