http://www.ulug.or.kr/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%B4%88%EC%8B%AC%EC%9E%90-%EC%8A%A4%ED%84%B0%EB%94%94-ubuntu-14-04-lts-%EC%84%A4%EC%B9%98/

USB를 포멧하는 방식인가 보다

Universal USB Installer 다운로드

리눅스 설치를 위해 C드라이브에서 용량을 확보하고 대략 20g

compmgmt.msc에서 파티션 분할을 통해 따로 공간을 만들려고 했으나

compmgmt.msc서 확보가능한 공간은 매우 작았다.

그리하여

http://www.partitionwizard.com/free-partition-manager.html 에서

파티션 분할 툴을 받아 10g를 확보하려 하였으나

Window fragmentation이 너무 많아 확보가 안된다는 문구가 떴다.

그리하여

Defragmentation을 시도.

http://windows.microsoft.com/en-us/windows/improve-performance-defragmenting-hard-disk#1TC=windows-7

그런데 나의 C드라이브는 NTFS 하드 디스크, 디스크 조각모음 분석이 안되었다. 왜 그렇지...

그리고 집어 넣은 Micro sd카드는 FAT32.  도대체 NTFS는 뭐고 FAT32는 뭐란 말인가...

http://sunwalk.tistory.com/27

https://msdn.microsoft.com/ko-kr/library/cc779002(v=ws.10).aspx

쨋든, NTFS라서 조각 모음이 원할하지 못하고 그리하여 C드라이브의 파티션 10g 확보도 안되고 있는 상황.

그리하여

https://www.virtualbox.org/

Oracle 가상머신에 우분투 설치하였다.

기타 여러가지 문제 해결

설치하고 나니 해상도가 너무 작았다. 띄운 창이 다 안보였다.

http://seldest.tistory.com/208  //가상머신에서 해상도 조절 팁

--------------------------데스크 탑-----------------------------

[듀얼부팅] 데스크탑에 우분투 설치해서 부팅중 Window나 Linux 선택할 수 있게 하기

그러러면 파티션 분할이 필요한가??

그러면 가상머신을 안써도 될 듯.

http://kmjg6357.tistory.com/45 [디스크 파티션 복제]

http://snoopybox.co.kr/1581

다시

http://www.ulug.or.kr/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%B4%88%EC%8B%AC%EC%9E%90-%EC%8A%A4%ED%84%B0%EB%94%94-ubuntu-14-04-lts-%EC%84%A4%EC%B9%98/

로 들어가서 부팅용 USB 만든 다음에 설치.

한글키 변환 문제도 해결.

[듀얼부팅의 여러가지 방식]

듀얼 부팅에도 여러가지 방식이 있다.

http://crampstory.tistory.com/34
http://crampstory.tistory.com/29
http://crampstory.tistory.com/30

[치명적인 문제 발견]

우분투를 깔고나서 반드시 부팅용 USB는 빼고 다시 실행해야 한다. 그렇지 않으면 다시 설치 화면으로 넘어가서 설치하게 된다.

'설치 안하고 우분투 실행하기' 누르면, 설정해 준 것들이 다 사라지고, 초기화된 화면이 나타난다;;;

그렇다고 재 설치를 누르면 에러가 발생한다.

나는 그래서 다시 윈도우 모드로 돌아간뒤, 우분투를 위한 파티션을 compmgmt.msc(디스크 관리)에서 지웠다. 즉, 다시 검은색 영역으로 만들었다.

그런 다음 재시작-부트모드-USB로 우분투를 다시 깔려하니 치명적인 에러 메세지가 잡혔다. (Fatal Error)

교수님이 말씀하시길 윈도우로 이미 무언가 깔아놓은 파티션은 다시 건드리는게 아니라고 하셨다. (프로그래머들은 윈도우로 파티션 다루는걸 조심한다고 하셨다.)

그리하여 난 HDD를 빼고 1T짜리로 다시 달아주었고... 결국 윈도우&리눅스라는 멀티부팅은 하지 못하고 HDD에 리눅스만 깔아주었다.

Posted by Aloha12
,

버스[Bus]

복수개의 장치(unit)와 레지스터(register)사이에서 데이터의 전송(Data transfer)이 행해지는 공통의 정보 전송로. 메모리와 다른 장치 사이에 접속되는 버스를 메모리 버스라하고 , 입출력 장치가 접속되는 버스를 입출력 버스(I/O bus)라 한다.

버스를 통해 한 클록 주기에 동시에 전달되는 비트의 수, 즉 버스 폭(bandwidth)과 버스의 동작(clock)속도에 따라 데이터 전송능력, 즉 초당 데이터 전송속도(bits/s혹은 Bytes/s)가 결정된다. 통로를 다수 만들어 각종 신호원의 데이터 입출력이 동시에 처리되는 것을 병렬 버스(parallel bus), 데이터를 직렬화(serialize)하여 통로를 최소화한 경우를 직렬 버스(serial bus)라고 한다. 

Computers communicate with memory using 3 types of signals(buses)

-address bus : determines the location of memory

-data bus : carries the contents of the location

-control bus : governs the information transfer 


MU0-맨체스터 대학에서 프로세서 원리를 설명하고자 설계한 아주 간단한 프로세서

프로세서 요소

- Program Counter(PC) : 현재 실행 중인 명령어의 주소를 저장하는데 사용되는 레지스터.

-Accumulator(ACC) : 연산의 결과를 저장하는데 사용하는 레지스터

-Instruction Register(IR) : 현재 실행 중인 명령어의 저장.

-Arithmetic Logic Unit(ALU) : 2진 덧셈, 뺄셈 등의 산술연산과 논리연산을 수행하는 장치.

cf) 마이크로 프로세서와 마이크로 컴퓨터 와의 차이점??

마이크로 프로세서 특징

소형화 : 기존 컴퓨터의 회로를 VLSI(Very large scale Integration)화 하여 단일 칩 구성.

키보드, CRT 장치 등 사용

마이크로 프로세서는 범용 처리 기능 외에 하드웨어 제어, 신호 입출력을 위한 부가적 회로 내장하여 제어용 단일칩 프로세서로 발전.

범용 컴퓨터의 소형화 방향으로 발전

최초의 마이크로 프로세서 : Intel 4004

명령 수행 단계

1. Instruction fetch :  MPU outputs value of program counter(PC) on address bus, Memory puts contents at the instruction address on data bus, Instruction is stored in instruction registers(IR).

2. Instruction Decode : The instruction word stored in IR is decoded by internal logic to provide control signals to ALU and other internal circuits inside MPU. Program counter value(PC) is pushed onto the address bus, the ALU increment this value by k and put it back into the Program Counter.

3. Operand fetch : The instruction register provides the address of the data to be processed. Memory supplies the operand data on the data bus to the MPU, ready.

4. Execute Instruction : Processing is performed on the operand by the ALU according to the instruction. The result is put back into the Accumulator(ACC)

5. Write back(may not exist) : The result from the Accumulator is written back into memory. In many processors, this will be done as a separate instruction.

피연산자[Operand]

기계어 또는 어셈블러 언어를 사용한 명령어의 일부이고, 보존하는 데이터 또는 검색(retrieve)하는 데이터의 어드레스를 포함하고 있는 명령어의 연산 대상이 된다. 주기억 장치의 어드레스나 레지스터를 지정하는 부분이다.

CISC[Complex Instruction set computer]

초기의 컴퓨터는 하드웨어를 최소화 하기 위해 작고 간단한 명령어 집합을 사용하였다. 이후 고급 언어를 사용하면서, 기계어로의 번역 과정을 단순화하면서 전반적인 성능을 향상시키는 과정에서 명령어 집합이 복잡해졌다. 

CISC는 마이크로프로그래밍을 통해 고급 언어에 각기 하나씩의 기계어를 대응시킴으로써 명령어 집합이 커지고, 가변 길이의 다양한 명령어를 가진다. 그러나 주로 쓰이는 명령어는 일부에 불과하고, 구조가 복잡하므로 가격이 비싸고 전력 소모도 크다는 단점이 있다.

따라서 자주 쓰이지 않는 명령어들은 소프트웨어로 구현하고 자주 쓰이는 명령어만 간략화 하여 CPU성능을 높인 RISC가 고안되었다. 펜티엄을 포함한 인텔 계열의 모든 프로세서는 CISC 프로세서이고, RISC 프로세서는 IBM의 System/6000 기종과 메켄토시 컴퓨터에 사용되고 있다. (컴파일러를 간단하게 하기 위해 명령어를 복잡하게 설계)

RISC[Reduced instruction set computer]

CISC란 소프트웨어 특히, 컴파일러 작성을 쉽게 하기 위해 하드웨어화 할 수 있는 것은 가능한 모두 하드웨어에게 맡긴다는 원칙 아래 설계된 컴퓨터이다.

 반면, RISC는 실행 속도를 높히기 위해 가능한 한 복잡한 처리는 소프트웨어에게 맡기는 방법을 택한 컴퓨터이다. RISC의 특징을 CISC와 비교하여 알아보면 다음과 같다. 

첫째, 명령의 대부분은 1머신 사이클에 실행되고, 명령길이는 고정이며(Fixed-length 32-bit instruction), 명령세트는 단순한 것으로 구성되어 있는데, 가령 메모리에 대한 액세스는 Load/Store 명령으로(Load/Store architecture) 한정되어 있다. 둘째, 어드레싱 모드가 적으며(3-address instruction formats), 마이크로 프로그램에 의한 제어를 줄이고, 와이어드 로직을 많이 이용하고 있다. 반면에 레지스터수가 많으며(Large register file) 마이크로 프로그램을 저장하는 칩 공간에 레지스터를 배치한다. 셋째, 어셈블러 코드를 읽기 어려울 뿐 아니라 파이프라인을 효과적으로 사용하기 위해서 일부 어셈블러 코드를 시계열로 나열하지 않은 부분이 존재하여 컴파일러의 최적화가 필요하다. 최적화를 하지 않으면 파이프라인을 유효하게 이용할 수 없고, RISC을 사용하는 의미가 없어진다. 

Pipeline 

명령어를 읽어 순차적으로 실행하는 프로세서에 적용되는 기술로, 하나의 명령어가 실행되는 도중에 다른 명령어를 실행을 시작하는 식으로 동시에 여러개의 명령어를 실행하는 기법이다. 파이프라인의 효율은 브랜치나 서브루틴 콜이 많아질수록 떨어진다. 그 이유는, 브랜치나 서브루틴 콜이 이루어지면, 파이프라인에서 처리되던 명령어들이 다 취소되고 새로 브랜치나 서브루틴의 명령어를 처리해야 하기 때문이다.

RISC 프로세서의 경우 CISC 프로세서보다 파이프라인 효율이 좋다. RISC는 명령어가 한 클록에 처리되므로, 한 명령어를 오래 처리해서 다음 명령어의 처리가 늦어지지 않기 때문이다.또한, 메모리에 접근하는 경우, 매우 오랜 처리시간이 걸리는데, RISC는 Load나 Store명령어 만으로 메모리에 접근하므로 비효율적인 접근이 CISC보다 적기 때문이다.

 

Hazard

파이프라인 속도가 느려지는 경우. 데이터 헤저드 : 예상된 시각에 연산자가 사용 불가능할 경우에 일어난다.

Structural hazard : 두 명령어가 동시에 어떤 하드웨어에 접근해야 할 때 일어난다.

data hazard :  예를 들어, 나눗셈 연산을 처리 중이라면 그 다음 명령어는 처리할 수 있는 연산자가 없기 때문에 실행이 연기될 수 밖에 없다.

Control hazard : 캐시에 명령어가 저장되어 있을 경우 빠르게 명령어를 실행할 수 있지만, 해당 명령어가 없을 경우에 메모리로 부터 가져와야 하기 때문에 오랜시간이 걸리고, 결국 파이프라인 속도가 떨어진다.

 

출처:

 [네이버 지식백과]피연산자 [operand] (컴퓨터인터넷IT용어대사전, 2011.1.20, 일진사)

http://terms.naver.com/entry.nhn?docId=850378&cid=42346&categoryId=42346

portal.changwon.ac.kr/homePost/download.do?postfileno=69582

'Soc & Microprocessor A+' 카테고리의 다른 글

디지털 논리회로를 배우는 이유는 무엇인가?  (0) 2015.04.20
[5]Module and Port  (0) 2015.04.18
[4]Verilog and VHDL  (0) 2015.04.18
Posted by Aloha12
,

 

Verilog 키워드

포트의 형

input

입력 포트

output

출력 포트

inout

양방향 포트

포트 선언

module fulladd(sum, c_out, a, b, c_in);

//포트 선언 부분

output[3:0] sum; output c_out;

input[3:0] a,b; input c_in;

//포트 선언 끝 부분

...

모듈내용

...endmodule

-모든 포트는 기본적으로 wire로 선언

-Output 포트가 값을 유지해야 할 경우 reg로 선언.

포트 연결 규칙

입력: 내부적-wire, 외부적-wire, reg      출력: 내부적-wire, reg, 외부적- wire

입출력: 내부적- wire, 외부적- wire

게이트 형태

 

module fulladd(sum, c_out, a, b, c_in); //1bit 전가산기 정의

output sum, c_out; input a,b,c_in; //I/O포트 선언

wire s1, c1, c2;//내부 넷

xor(s1,a,b); and(c2,a,b); xor(sum,s1,c_in); and(c1,s1,c_in); or(c_out,c1,c2);

endmodule

 

 

module fulladd4(sum,c_out,a,b,c_in); //1bit전가산기 정의

output [3:0]sum; output c_out; input[3:0]a,b; input c_in; //I/O포트 선언

wire c1,c2,c3//내부 넷

fulladd fa0(sum[0],c1,a[0],b[0],c_in); fulladd fa1(sum[1],c2,a[1],b[1],c1); fulladd fa2(sum[2],c3,a[2],b[2],c2);fulladd fa4(sum[3],c4,a[3],b[3],c2);

endmodule

게이트 지연

and #(5) a1(out,a,b); //모든 변화에 대한 5단위 시간지연

and#(4,6) a2(out,a,b); //상승=4, 하강=6

bufif0 #(3,4,5) b1(out,in,control); //상승=3, 하강=4, 턴오프=5

최소: 설계자가 예상한 게이트의 최소 지연 값. 전형: 설계자가 예상한 보통의 지연 값. 최대: 설계자가 예상한 게이트의 최대 지연 값.

and #(2:3:4, 3:4:5, 4:5:6) a3(out,a,b); //2:3:4- 상승 지연값에 대한 min,typ,max값 //3:4:5-하강 지연값에 대한 min,typ,max값 //4:5:6- 턴-오프 지연값에 대한 min, typ, max값.

 

 

'Soc & Microprocessor A+' 카테고리의 다른 글

디지털 논리회로를 배우는 이유는 무엇인가?  (0) 2015.04.20
[1]Microprocessor  (0) 2015.04.18
[4]Verilog and VHDL  (0) 2015.04.18
Posted by Aloha12
,