본문 바로가기

전체 글669

레지스터, 데이터 적재 레지스터, 시프트 레지스터, 카운터, 비동기식 카운터 1. 레지스터 (1) 레지스터의 개요 - 데이터를 일시 저장하거나 전송하는 장치 - 여러 개의 플립플롭을 연결하여 구성 - n 비트 레지스터는 -> n 개의 플립플롭으로 구성되며 -> n 비트의 2진 정보를 저장 - 결국 레지스터는 여러 비트를 일시적으로 저장하거나 배열된 비트를 좌우로 자리이동 시키는데 사용 레지스터의 기본 형태 직렬 - 직렬 직렬 - 병렬 병렬 - 직렬 병렬 - 병렬 (2) 데이터 적재 레지스터 레지스터의 가장 중요한 기능 : 데이터를 임시 보관 => 데이터 적재 기능 - 입력된 데이터를 그대로 기억하는 역할을 수행 - 일반적으로 D F/F 사용하여 구성 데이터 입력에 따라 직렬, 병렬로 나뉨 직렬적재 레지스터 여러 개의 플립플롭을 연결하여 구성 - 구성 예 : 4개의 F/F으로 구성.. 2023. 6. 15.
순서논리회로의 설계 과정 및 예시, D 플립플롭, JK 플립플롭 입출력 방정식 및 상태표 작성 1. 순서논리회로의 설계 과정 설계 명세로부터 F/F의 종류와 개수 결정 -> 상태표 작성, F/F 종류 개수 결정 명세의 내용을 만족하는 조합논리회로 설계 - 상태표로부터 F/F의 입력방정식을 구함 - 상태표에 출력이 있으면 출력방정식을 구함 - 구해진 입력방정식과 출력방정식을 간소화 F/F과 연결 - 간소화된 입출력 방정식을 이용하여 논리도 작성 (1) 상태표 작성 주어신 설명이나 상태도로부터 상태표를 작성 (2) 플립플롭의 결정 -> 순서논리회로에 사용될 F/F의 개수와 종류를 결정하고, 그 F/F에 기호를 할당 1) F/F의 개수 결정 - F/F의 개수는 순서논리회로 내의 상태수로 결정 - 2n개의 상태를 표현하기 위해서는 n 개의 F/F 필요 2) F/F에 기호 할당(F/F의 종류 결정) - 정.. 2023. 6. 15.
순서논리회로의 분석, 상태표, 상태도 1. 순서논리회로의 분석 순서논리회로의 분석 - 주어진 순서논리회로의 입출력 관계를 규명 - 그러나 시간지연요소인 플립플롭이 포함되어 있으므로 회로의 시간적 변화를 고려해야 함 - 즉 회로 동작의 시간적 변화를 상태-현재상태-다음상태로 표현해야 함 따라서 순서논리회로의 동작은 입출력 상태와 플립플롭의 상태에 따라 결정되므로, 플립플롭의 상태와 입출력 상태의 시간적 변화를 적절히 나타내야 한다. => 결국 순서논리회로의 분석은 상태표를 완성하는 것 순서논리회로의 상태표를 작성하기 위해서는 플립플롭의 상태변화를 알아야 한다. - 상태변화는 플립플롭에 들어오는 입력을 알면 구할 수 있다. - 플립플롭의 입력은 입력방정식으로 표현된다. 플립플롭의 입력은 조합논리회로의 출력이 연결된다. 따라서 플립플롭의 입력방적.. 2023. 6. 15.
순서논리회로, 플립플롭, SR래치, D 플립플롭, JK 플립플롭, T 플립플롭, 플립플롭의 트리거링 1. 순서논리회로의 개요 조합논리회로: 현재 시간의 입력에 의해 출력이 결정 순서논리회로: 조합논리회로에 저장요소를 추가한 회로 순서논리회로는 외부로부터 2진 정보를 전달받게 되고, 이 외부로부터의 입력은 저장요소에 저장된 현재 상태와 함께 출력의 2진 값을 결정한다. 비동기 순서논리회로 - 시간지연소자를 사용 - 시간지연소자는 신호가 전달되려면 일정한 시간이 걸리므로 기억능력을 갖게 됨 - 논리게이트로 구성되는 시간지연소자는 게이트간의 피드백 때문에 예측 못한 상태로 동작하거나, 불안정한 상태가 발생되기도 함 - 이러한 이유로 자주 사용되지 않음 동기 순서논리회로 - 특정 순간에서만 저장요소를 내용을 변화시킬 수 있는 신호를 사용 -> 클럭 펄스 (1과 0으로 이루어져 있음) - 이러한 클럭 펄스는 시.. 2023. 6. 15.
병행 프로세스의 여러가지 문제들, 생산자-소비자, 판독기-기록기, 자바 구현 코드, 프로세스 간 통신 1. 생산자-소비자 문제 - 두 협력 프로세스 사이에 버퍼를 두고 생산자와 소비자의 상황을 다루는 문제 - 생산자: 데이터를 넣느 프로세스 - 소비자: 데이터를 꺼내는 프로세스 버퍼에 여러 프로세스가 동시에 접근할 수 없음 - 버퍼에 데이터를 넣는 동안에는 데이터를 꺼낼 수 없음 - 버퍼에서 데이터를 꺼내는 동안에는 데이터를 넣을 수 없음 -> 상호배제 필요 버퍼의 크기가 유한 (유한 버퍼 문제) - 버퍼가 가득 찬 경우 생산자는 대기해야 함 - 버퍼가 빈 경우 소비자는 대기해야 함 -> 동기화 필요 상호배제: 세마포어 mutex를 이용 (초깃값 1) 버퍼가 가득 차 경우 동기화: 세마포어 empty(초깃값 n) // n: 버퍼 크기 버퍼가 빈 경우 동기화: 세마포어 full (초깃값 0) 따라서 3개의.. 2023. 6. 15.