개발(89)
-
[순차회로] 플립플롭
오늘은 플립플롭(Flip-Flop)에 대해서 학습한 내용을 기록한다. 래치와 플립플롭의 차이 래치와 플립플롭은 동일한 기능(1bit 기억)을 가지고 있다. 단지 입력된 값을 어느 타이밍에 결과에 반영하는지에 대한 차이점 밖에 없다. 입력값이 결과에 반영되는 순간을 나타내는 것을 Trigger라고 부르며 Trigger의 종류에는 어떤 종류가 있고 래치와 플립플롭이 어떤 Trigger 방식을 사용하는지 살펴본다. 트리거의 종류 Trigger는 Level trigger와 Edge Trigger로 나눌수 있는데 각각의 trigger는 다시 positive와 negative로 나뉜다. 그림에서도 알수 있듯이 클럭이 변화되는 순간상태에 따라 계산수행 여부를 판단하는 것을 Edge trigger방식이라 부른다. 반대..
2021.07.25 -
[순차회로] 래치
이전에 클럭을 통해서 컴퓨터에게 현재와 과거의 개념을 부여했다면, 이번에는 어떻게 컴퓨터가 과거의 bit값을 기억하는지 알아본다. 비트를 기억하는 방법은 크게 래치(Latch)와 플립플롭(Flip-Flop)이 있는데 오늘은 래치에 대해서 작성한다. Latch NOT, AND, OR 게이트를 이용해서 가장 기본적인 형태의 래치를 만들어본다. 입력은 set과 reset이 있으며, OR 게이트의 결과인 out이 AND의 입력으로 사용되었다. 이런 식의 연결을 되먹임(feedback)이라고 한다. set과 reset을 입력했을때 out의 결과가 어떻게 변하는지 살펴본다. 예시에 대한 결과를 정리해보면 아래와 같다. reset이 1인 경우 out은 set의 값으로 셋팅되게 된다. ( Why? AND게이트의 결과가..
2021.07.24 -
클럭(Clock)
논리회로를 학습하게 되면 조합회로와 순차회로를 배우게 되는데 순차회로를 학습하기 전에는 클럭을 먼저 이해하는게 좋다. 따라서 오늘은 클럭에 대해 쓴다. ( 늘 그렇듯 수정사항 있으면 언제든 댓글 달아주세요!! ) 순차회로는 조합회로와 달리 이전의 출력값이 현재의 입력에 활용되는 특징을 가진다. 따라서 이전 출력을 보존하기 위한 설계가 필요하다. 순차회로는 CPU의 캐쉬, 메모리 등 기억이 필요한 연산을 수행할 경우 반드시 필요한 회로중 하나다. 핵심은 "이전"과 "현재"를 컴퓨터가 어떻게 구분하냐는 것이다. 1. 컴퓨터의 메트로놈 컴퓨터에선 클럭 신호(Clock Signal)를 통해서 시간을 구분할 수 있다. 클럭 신호는 음악에 사용되는 메트로놈과 같다고 보면된다. 음악에서 메트로놈의 속도가 빨라지면 전..
2021.07.18 -
스위치부터 집적회로까지
문득 논리회로를 학습하다가 게이트가 어떤 역사를 통해 완성되었는지 궁금해서 글을 쓴다. 너무 깊이 들어가면 회로이론수준까지 가버려서 큰 틀만 이해하는 식으로 작성했다. ( 자세한 설명은 전자과 형님들에게 물어보자. ) 내용은 컴퓨터 구조 서적인 "한 권으로 읽는 컴퓨터 구조와 프로그래밍 (저 : 조너선 스타인하트)" 를 참고해서 작성했다. 게이트와 스위치 아래는 OR 게이트와 같은 결과를 만들어내는 가장 심플한 형태의 전자회로이다. A와 B 스위치의 계폐에 따라 램프의 점등 여부가 달라진다. 즉 A와B 스위치가 입력을 나타내고, 램프가 결과값을 의미한다고 볼수 있다. 아래는 AND, OR, NOT 게이트 모습이다. 결국에 우리가 알고 있는 게이트는 스위치를 회로에 어떻게 배치하느냐에 따라 달라진다. 기계..
2021.07.17 -
[알고리즘/자바] 백준 5622번 - 다이얼
5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 전화기의 번호를 누르기 위해선 몇초간 기다리는 시간이 필요하며, 각 번호에는 3~4개 알파벳이 매핑 되어있다. 입력은 번호가 아닌 알파벳으로 주어지며 이 알파벳을 보고 전화를 거는데 걸리는 시간을 구하는 문제다. 첫번째 아이디어. 문제에 각 알파벳을 선택하는데 소요되는 시간은 이미 확정 되어있다. A,B,C는 3초가 소요되며 D,E,F를 선택할때는 4초가 걸린다. 아스키 코드를 통해 문자를 10진수 정수로 변환했고 아래와 같은 방법으로 알파벳을 선택하는데 걸린 시간을 구했다. 이런식으로 풀면 정답일줄 알았는데 한가지 실수가 있었다. (위에 형광펜..
2021.07.14 -
[C++]비트마스크를 이용한 에라토스테네스의 체 구현
이전에 백준 사이트에서 에라토스테네스의 체 문제를 푼적이 있다. 자료구조를 공부해보고 싶어서 종만북 2권을 보는데 첫번째 장에서 비트마스크를 통한 에라토스테네스의 체를 구현한 부분이 있어서 블로깅 해본다. 비트마스크는 bit연산을 통해 문제를 해결하는 방법을 말한다. [알고리즘/자바] 백준 2960번 - 에라토스테네스의 체 2960번: 에라토스테네스의 체 2, 4, 6, 8, 10, 3, 9, 5, 7 순서대로 지워진다. 7번째 지워진 수는 9이다. www.acmicpc.net 주어진 N이 소수라면 2보다 크거나 같고 N보다 작은 수로 나눠 떨어지면 안된다. ( 주어 soojong.tistory.com 아래는 종만북을 학습하고 있는 과정에서 작성한 글이기 때문에 오류가 있을수 있으니 수정해야할 부분 있으..
2021.07.11