페이지

2015년 3월 4일 수요일

Computer Architecture. chap1 Introduction

Today I will post my computer architecture lecture summary (I just undergraduate computer science student.). I will use this blog to post all of my studies. If you have a question or anything else, Just let me know I will respond that as soon as possible.

Intro 
 Definition of some terms
   - Architecture = refers to those attributes of a system visible to a programmer
   - Organization = refers to the operational unit (hard ware)
    It just tip. So, you could ignore this

 Structure and Function
  Structure: The way in which the components are interrelated.
  Function: The operation of each individual component as part of the structure.
   Function(I think these names are easy to understand)
Ref: Computer Organization and Architecture 5th edition,
William Stallings, P.31

  • Data processing
  • Data storage
  • Data movement
  • Control





















 Structure
Ref: Computer Organization and Architecture 5th edition,
William Stallings, P.32
I think this diagram is easy to understand. This means computer could divide as 4 parts I/O, Main memory, CPU and System bus. Especially, System bus connects all the other devices and makes them could communicate. Other parts are the same style.



This topic don't be hard to understand, but I don't know I explained well....(I'm sorry to my poor English expressions)

2015년 3월 3일 화요일

컴퓨터 구조. 챕터 1 Intro ~ 쳅터 2 Computer Evolution and Performance (멀티코어까지)

안녕하세요 Akpil입니다. 뭐 이 블로그는 제가 학과수업을 듣거나 따로 공부를 진행한 것을 공유하기 위한 블로그라 시간날때마다 수업내용을 정리해서 계시할 계획입니다. 혹시 질문 있으시면 메일이나 덧글 남겨주세요

인트로
 간단한 용어의 의미정리
   - Architecture = 프로그래머 관점에서의 컴퓨터 구조
   - Organization = 하드위어적인 관점에서의 컴퓨터 구조
  결론 - 그냥 이러한 의미로 사용하면 됩니다.....

 Structure and Function
  구조(Structure) = 서로 관계 있는 컴포넌트(components) 간의 구조
  함수(Function) = 구조 내부에 있는 각각의 컴포넌트들의 동작
     (함수가 구조중 최소단위인 컴포넌트 내에 포함되어 있다는 사실만 알면 됩니다.)
   함수(Function) 의 종류(이름만 봐도 알 수 있는 내용이니 설명은 생략하겠습니다.)
출처: Computer Organization and Architecture 5th edition,
William Stallings, P.31

  • Data processing
  • Data storage
  • Data movement
  • Control






















   구조(Structure)

출처: Computer Organization and Architecture 5th edition,
William Stallings, P.32
 아마 이 모형은 읽자마자 이해하시는 분도 계실거고 아닌분도 계실 테니 적당히 훓어보겠습니다. 우선 컴퓨터의 내부는 메인메모리, CPU, I/O(Input / Output), 시스템 버스(System bus) 총 네가지로 분류할 수 있는데요, 각각의 장치가 시스템버스를 통해 서로 소통한다고 보시면 됩니다.
 CPU 내부도 마찬가지 방식으로 표현할 수 있습니다. 챕터 1 끝~!

진화와 성능(Evolution and Performance)

 첫번째 세대 : 진공관(Vacuum Tubes)

 진공관 컴퓨터는 최초의 범용 컴퓨터라고 통상적으로 불리는 ENIAC이 시작입니다. (이 전에 콜로서스나 기타등등 컴퓨터가 있었지만 범용이라고 하기엔 무리가 있습니다.) 컴퓨터가 흔치 않던 시절 컴퓨터 하면 떠오르는 모습과 용도를 생각하면 맞습니다.(암/복호화 탄도계산 등등)

 폰 노이만 머신 (The Von Neumann Machine)
 현재 우리가 사용하고 있는 컴퓨터는 모두 폰 노이만 머신의 형식을 따릅니다. 이 방식은 메모리에 프로그램을 저장해야한다는 폰 노이만의 철학(Stored-program concept)을 따른 형태로 도표로 나타내면 다음과 같습니다.(IAS 컴퓨터라고 나와있는 이유는 폰 노이만이 이 형식을 따르는 컴퓨터를 개발할때 명칭을 IAS라고 했기 때문입니다. 한마디로 폰 노이만 머신의 대표사례입니다.)
출처: Computer Organization and Architecture 5th edition,
William Stallings, P.40

 두번째 세대 : 트렌지스터(Transistors)

 트렌지스터가 개발된 후 이는 컴퓨터에서 진공관의 기능을 대체 했습니다. 트렌지스터는 진공관에 비해 크기, 비용, 발열량 등 모든측면에서 진공관을 크게 앞섭니다.
예) IBM 7094
출처: Computer Organization and Architecture 5th edition,
William Stallings, P.49
 이 컴퓨터는 I/O, 메모리, CPU사이에 MUX를 이용해 신호제어를 한다는 특징이 있습니다. 이를 제외하곤 현대의 컴퓨터와 유사한 구조를 가집니다.


 세번째 세대 : 집적회로(IC:Integrated Circuit)
 그후 (Later generation)
프로세서 비교표

출처: Computer Organization and Architecture 5th edition,
William Stallings, P.59
이 전까지의 표는 무의미한 것 같아서 이정도만 올리겠습니다.

여기서 Feature size에 대해 살짝 짚고 넘어가겠습니다. feature size는 사전적 의미로 최소 선폭을 의미하며 최소선폭이 작을수록 회로집적도, 전력소모량, 클락수 등 전반적인 성능이 향상된다고 보면 됩니다.

성능을 위한 디자인(Designing for Performance)
 여기선 간단하게 한가지만 짚고 넘어갑니다.
 마이크로프로세서 속도(Microprocessor Speed)에 영향을 미치는 요인

  • Pipelining
  • Branch prediction
  • Data flow analysis
  • Speculative execution
참고자료(I/O device 반응속도)

출처: Computer Organization and Architecture 5th edition,
William Stallings, P.62
멀티코어(Multicore)
 요즘 사용되는 절대다수의 CPU가 이 멀티코어 형태로 고안되어 있습니다. 코어(CPU)가 두개 이상 탑제되어 하나의 회로를 구성하는 방식입니다.

절대 어려운내용이 아님에도 분량도 생각보다 꾀 되고 설명이 잘 되어 있나 모르겠네요... 잘 봐주셧으면 합니다...~

2015년 3월 2일 월요일

Introduction of Unreal engine 4

Introduction
 If you like computer games, I think you would have heard about game engines. For more unfamiliar readers, I try to more description.

 In short, the game engine is something like Photoshop to make games.  If you make a computer game at no support programs, you would have to make the game start state and graphic modeling, networking also logic design these sequences have very bad efficiency and it will take risks on fatal errors. Make up for these weak points, game companies make a game engine to treat that problem. As a result, game producing become a more optimum specialization. In short, each position can concentrate their own job.

 Unreal Engine?
 Unreal Engine is one of the famous game engine. (If you need more information, Click here) Last year unreal engine 4 was released(2014.03)

Beginning
 Search unreal engine on google, you can see the unreal engine official homepage. In that page you can subscribe the engine, use engine community and etc.

 If you subscribe your account, you could see this page. The launcher download link is the right side of the page Latest Download category. (Whole engine cost is 19$/month just using the engine is free and 5% profit for a game(over 3000$ profit per quarter). If you are a student Click here to get an engine for free) 

 After Installation, you can see this page.
 For beginner, official website offer video tutorials Click here. In basic part, tutorials better than my description.

PS the engine has many inherited classes, but if you want to make custom classes, Click here this would be helpful.

2015년 3월 1일 일요일

언리얼엔진 4 입문

입문(포스팅 시작 전에...)

 언리얼엔진에 대해 잘 모르시는 분들이 계실까봐 간단히 소개하겠습니다. 아마 게임을 좋아하시는 분이라면 한번쯤 들어보셧을 텐데요, 게임엔진이 뭔지 모르시는 분들을 위해 게임엔진부터 간단히 설명해 드리겠습니다.

 게임엔진은 비유해서 아주 간략하게 설명하자면 게임을 만들기 위한 포토샵? 정도가 되겠습니다. 게임을 프로그래밍으로 바닥부터 만들려고하면 게임 실행부터 그래픽처리, 네트워크 등 내부동작 등을 일일히 다 작성해야되서 작업효율도 떨어지고 그만큼 오류나 기타 문제가 발생하기 쉽습니다. 이러한 문제점들을 최대한 보완하기 위해 게임제작사에서 만들기 시작한 것이 바로 게임엔진입니다. 그래픽디자이너는 포토샵처럼 보이는 게임 내부 화면등을 편집하고, 프로그래머는 각각의 동작에 필요한 사항들을 코딩으로 작성하는 방식으로 구현하게 되어 있습니다.

 언리얼 엔진?
 언리얼엔진은 위에서 설명한 게임엔진 중 하나인데, 인지도하나는 상위권에 속해있는 유명한 엔진 입니다. 위키검색을 해보면 아주 자세히 설명되어있는 걸 보실 수 있습니다(위키 링크는 여기).  작년(2014)초 언리얼엔진 4 가 출시되어 올해 1~2월동안 이거 하나만 들이 팟지만.....

 각설하고 간단한 튜토리얼부터 제가 두달간 작업한 내용을 공유하겠습니다. 그럼

시작
 언리얼엔진 4 라고 검색하면 맨 처음 공식 운영 사이트가 나오는데, 거기에서 결제 및 커뮤니티 이용등이 가능합니다.
 결제를 완료하면 이렇게 나오는데, 해외결제가 가능한 카드로만 결제 가능하니 알아두시길...(월19$에 엔진 원본 소스코드까지 열람 및 컴파일 가능 전면무료 분기수익 3000$이상일 시+5%는 게임 출시했을때 수익 5%내라는 ..... 아 학생이라면 공짜로 쓰는 방법도 있습니다. 여기 에서 학생인증하고 승인 받으면 졸업할때 까지 무료로 사용 가능합니다.)

 결제를 한 후 우측 최신 다운로드에서 각자 환경에 맞는 파일 을 다운로드 받아서 설치후 실행을 하면 
 이런 화면이 나오고 이제 엔진 설치가 가능해집니다. 프로젝트 생성이나 완전 기초부분은 저의 설명보다 여기 에서 보시면 더 깔끔하게 자세하게 나와 있습니다.

추신 엔진내부 기본 제공클레스 외에 다른 클레스를 생성하고 싶다면 -> 추가자료UObject 기본 코딩방법

Welcome!!

Hello everyone, This blog is made for study and sharing information on computer science. I will try to post both Korean and English. Unfortunately, I'm not a native English user so maybe my expression is not fluent. If you can read Korean, It would be better. If you need a question or suggestion, don't be hesitated.

안녕하세요~! 이번에 새로 블로그를 운영하게 된 Akpil 이라고 합니다. 이 블로그는 위에 쓴 것 처럼 컴퓨터과학 관련해서 제가 공부한 것에 대한 정리와 정보교환을 목적으로 하고 있습니다. 영어버전이랑 한글버전 두개를 동시에 포스팅 할건데 아마 한글을 읽으실 수 있으면 한글포스팅만 보심 될 것 같네요. 열심히 하겠습니다.