기본 환경은 다음 환경에서 구축하였고, 앞에서 소개한 스크린샷이 이환경에서 작성되었다. - VMWare Workstation 8.0 - Core 2x2 - RAM : 2GB - OS : Ubuntu 10.04 LTS x86 - Kernel : linux-2.6.32.20 (https://www.kernel.org/pub/linux/kernel/v2.6/) - Tool : Xenomai-2.6.0 (http://www.xenomai.org/index.php/Main_Page)ADEOS2.6.32.20-x86 (http://download.gna.org/adeos/patches/v2.6/x86/older/) (1) kernel package 설치 (2) Kernel build를 위한 essential too..
이전에 올린 포스트 중에 Process와 Thread, Task의 차이에 대해서 간략하게 정리해본 것이 있었다.2013/02/15 - [About School] - [Study] Task / Thread그 포스트에서 잠깐 언급하기로는 Process와 Thread의 구분이 되어 있는 운영체제가 있는가 하면 동일한 개념으로 사용하는 운영체제가 있다 했었다. 사실 그 게 어떤건지에 대해서 궁금해 했었는데 OLC에 공개되어 있는 고건 교수님의 Kernel Of Linux 라는 강좌에서 이에 대한 이야기를 잠깐 다루고 있어서 소개하고자 한다. 리눅스에서 Process라는 것은 실행할 수 있는 프로그램으로 설명할 수 있다. 실행이 가능하다는 것이지 현재 실행중(RUNNING)일 수도 있고, 실행이 끝난 상태(WAI..
지난 포스트를 통해서 Regular Expression을 NFA->DFA를 거쳐는 일종의 Lexical Analysis을 정리했다. 그러면 이제 수행해야 될 것이 Syntax Analysis가 될 것이다. 그런데 한가지 짚고 넘어가야 될 부분이 있다. 과연 지금까지 다룬 방법으로 사용자가 넣는 모든 입력들을 이 Syntax Analysis를 처리할 수 있냐는 것이다. 예를 들어서 brace {()} 가 있는 구문을 보자 이걸 Regular Expression으로 어떻게 표현할 수 있을까? 맨처음 RE로 표현할 수 있는 기본적인 수칙에 의하면 분명 (*)* 로 표현해야 될 것이다. 그다음 작업이 FA로 바꾸는 작업인데 State Transition Diagram으로 표현할 수 있겠는가? 만약 brace 안..
System이 원활하게 돌아가기 위해서는 무언가의 제어를 받아야 한다. 보통 그 무언가를 processor로 정의하고 있으며, 이 processor가 발생시키는 clock의 timing을 활용해서 Task scheduling을 한다. 이번 포스트에서는 Liu 교수가 쓴 Real Time Systems 의 chapter 4에 나오는 Realtime Scheduling에 대해서 조금 정리해보고자 한다. 앞에서 언급한대로 clock의 timing이라는 건 시스템내에서 주기적으로 정확하게 발생하는 이벤트이다. 즉, 가장 쉽게 생각해볼 수 있는 scheduling은 이 clock을 기준으로 Task를 할당하는 Clock Driven Scheduling Approach가 될 것이다. 다른 말로는 Time-Drive..
지난 포스트에서 Real Time System을 구현할 때 Reference model을 설정해놓으면 좋은 점에 대해서 언급했고, 그 중 하나로 Workload에 따른 분류를 해봤다. 이번 포스트에서 다룰 내용은 Resource 차원과 Scheduling 차원에서 정해진 Reference Model을 정리해보고자 한다. System내에서 Resource라고 부를 수 있는게 뭐가 있을까? 생각해보면 PC의 성능을 나타내는 지표를 쭉 정리해보면 일차적으로 processor가 있을 것이고, 그 processor에 Data를 전달하기 위한 Bus, 그 Data를 담고 있던 storage,communication Channel등 task가 실행되고 전송되면서 거치는 모든 것들이 다 Resource라고 정리할 수 ..
지난 포스트에서 NFA에서 DFA로 구하는 변하는 과정을 알아보았다. 그래서 최종적으로 나온 결과는 다음과 같다.그런데 유심히 살펴보면 뭔가 이상한 점이 있다. A가 initial state로 정해져 있긴 하지만 A에서 입력을 a,b로 받는 거나, C에서 a,b로 입력을 받는 것이나 결과가 똑같다. 만약 initial State가 C로 되어 있더라도 위와 별반 차이가 없을 것이다. 이처럼 Subset Construction Algorithm은 표현할 수 있는 모든 경우의 수에 대해 DFA를 구한 것이기 때문에 간혹 불필요한 State Transition이 표현되어 있기도 하다. 그래서 조금 더 노력해보면 이 state들을 합칠 수 있다는 결론을 내릴 수 있다. 이렇게 축약한 결과가 Minimum Stat..
지난 포스트에서 Regular Expression을 Non-deterministic FA로 바꾸는 방법 중 가장 보편화된 방법인 Thompson's Construction Algorithm (TCA)에 대해서 간단한 예제를 통해서 살펴보았다. 그런데 사실 NFA를 구한 것 자체는 정답을 찾기 위해서 필요한 경우의 수를 추려놓은 정도이기 때문에 여기서 확실한 정답을 선별하기 위해서는 DFA로 바꿀 필요가 있다. 그래서 여기까지 하면 Regular Expression | (Thompson`s Construction Algorithm) Non-deterministic Finite Automata | (Subset Construction Algorithm) Deterministic Finite Automata|..
지난 포스트를 토대로 Nondeterministic FA와 Deterministic FA를 구별해보았다. 간단히 요약해보면 경로를 찾는데 있어서 가능성 주목한 방식이 NFA가 될 것이고, 진짜 정답을 찾는 방식이 DFA가 될 것이다. 그래서 저번에 계층적으로도 표현했었지만 우리가 Lexical Analysis를 하는 궁극적인 목적은 Regular Expression 식을 NFA를 거쳐서 아주 간략한 DFA를 거치는 것이 되겠다. 그럼 먼저 해야 되는 작업이 RE를 NFA 형식으로 바꾸는 방식이 되는데 여기에는 Thompson`s Construction Algorithm (TCA) 라는 방법으로 정의되어 있는게 있다. 이 방법은 Regular Expression을 가장 기본적인 단위로 쪼개어 NFA에서 정..
잠깐 헷갈리고 있던 개념이 있어서 이자리에서 정리해보려고 한다. 과연 Single Cycle Implementation과 Multi Cycle Implementation 그리고 이전에 다뤘던 pipelined Implementation 의 차이는 무엇일까 하는 것이었다. 그 의문을 갖게 된 계기는 다음과 같다. 위의 이미지는 Pipeline Implementation의 DataPath이다. 그런데 잘 보면 알다시피 기본 베이스가 Single Cycle Implementation의 Architecture에다 중간중간에 Stage Register가 삽입된 형태를 띄고 있다. 내가 헷갈렸던 것은 Pipeline 자체도 Multi-cycle Implementation을 기반으로 나온 개념인데 왜 기본 구조는 S..
지난 포스트 두개를 통해서 간단한 Single Cycle Implementation을 정리했다. 그런데 정리하다보면서 느낀 건 1cycle상에서 처리하다보니, 특정 instruction 에서는 그 처리 시간이 늦어지는 경우도 있다는 것이다. 가령 lw(load word)와 같은 명령어는 같은 instruction을 수행하는데 있어서 MIPS Architecture에 구현된 대부분의 모듈에 Access한다. 당연히 해당 target 주소를 읽어오기 위해서 Register로부터 Read를 해와야 하며, Memory 에 저장되어 있는 값을 읽어오기 위해 Memory Read도 일어날 것이다. 또한 Target Address를 연산하기 위해서 ALU Operating도 있을 것이고, 구한 값을 다시 Regist..
지난 포스트에서 Arithmetic Instruction이 주어졌을때 data의 flow가 어떻게 흐르는지를 알아보았다. 그런데 중간에 잠깐 언급했던 내용중에는 opcode에 따라서 수행되는 data flow가 천차만별이라는 것이다. 지난번 연산중에 Memory를 다루지 않았는데 이번 포스트에서는 그 Memory를 Access하는 Instruction이 수행됬을 때의 Data flow를 정리해보고자 한다.우선 그때도 말했다시피 Memory Access에 사용되는 Instruction format은 Immediate-type format(I-type)이다.instruction내에는 register에 들어갈 값도 포함되지만 정수를 표현할 수 있는 immediate area도 존재한다. 이 값이 instruc..
Q. For the single cycle Implementation에서 add instruction 이 실행될 때 data의 흐름 / ALU operation / register, memory enable의 값을 표현하시요. 우선 Add instruction을 수행하는 과정의 첫번째는 instruction내에 어떤 값들이 포함되어 있는지를 확인해봐야 한다. instruction에 포함되어 있는 명령어는 크게 4가지로 나눌수 있는데 그중 add,sub 같은 arithmetic 관련 명령어이 포함되어 있는 instruction은 Register type Format (R-type format)의 형태를 지닌다. 첫번째 상위 6bit은 opcode라고 하고 사전에 정의된 command를 분별하는 역할을 한다..
이전 포스트 들 중에서 Pipeline에 대해서 다뤘던 적이 있다.Pipeline 자체가 그 Never Waste Time이라는 말처럼 각 stage가 노는 여유가 없이 계속 돌리게 함으로써, 전체적으로 instruction의 처리 시간을 줄이는 효과를 가져온다고 언급했었다. 하지만 분명 pipeline을 수행하다 보니 stage간의 순서를 반드시 지켜줘야 하는 경우가 있으며, 이를 지키지 않았을 경우에는 원하는 답을 얻지 못하는 경우가 발생하기도 한다. 그런데 발생할 수 있는 hazard 중에 control hazard 라는 것을 다뤘었고, 이 문제 자체는 branch와 jmp 같은 memory 주소를 뛰어 넘는 instruction 수행시 자주 발생한다. 분명 pipeline의 효과를 수행하기 위해서..
- Total
- Today
- Yesterday
- 파이썬
- SketchFlow
- RL
- End-To-End
- Variance
- Pipeline
- DepthStream
- Kinect SDK
- windows 8
- reward
- TensorFlow Lite
- Expression Blend 4
- Windows Phone 7
- arduino
- Distribution
- 딥러닝
- Offline RL
- dynamic programming
- PowerPoint
- 강화학습
- ai
- Policy Gradient
- Off-policy
- bias
- Kinect for windows
- 한빛미디어
- Gan
- Kinect
- ColorStream
- processing
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |