전체 글 148

http

컴퓨터는 통신을 어떻게 할까? 컴퓨터는 통신을 할 때에 클라이언트(고객)과 서버로 나뉜다. 통신은 클라이언트에서 신호를 보내면 복잡한 망을 거쳐서 최종 서버에 도달하게된다. 이때 잘 찾아갈 수 있도록 컴퓨터에 주소를 부여하는데 이를 ip주소 라고 한다. 그리고 ip 주소를 활용하여 정보를 전달할 때에 패킷이라는 통신 단위로 데이터를 전달한다. 이 ip 패킷에는 출발지ip, 도착지 ip 등이 포함되어 있다. ip프로토콜은 이론 패킷의 정보를 바탕으로 데이터를 전달한다. 이 ip 프로토콜에는 한계가 존재하는데, 1. 비연결성 (대상이 존재하던 하지 않던 일단 전송한다) 2. 비신뢰성 (패킷이 순서대로 오지 않거나 중간에 소실될 수 도 있다) : 여러 노드를 거치기 때문에 3. 프로그램 구분 불가이다 (같은 ..

http 2022.03.26

논리회로 설계

SOP, POS SOP 는 sum of products 로 곱들의 합이다. 이는 진리표로 표현하자면 위와 같이 표현 할 수 있다. 위의 minterm은 모든 요소(부정 혹은 부정이 아닌 것들)을 곱한것이다. 위의 표를 따라간다면 m0 일때에는 0 0 이 들어왔을때 1을, m1 은 0 1 이 들어오면 1 출력, m2 : 1 0 -> 1, m3 : 1 1 -> 1 이렇게 각각의 케이스별로 원하는 입력일 때에만 1을 출력하고, 나머지는 0을 출력한다. 그리고 원하는 결과 값인 Y를 계산할시에는 출력값이 1인 회로들만 or (논리합) 으로 묶어주면 된다. 따라서 최종은 곱으로 표현된 minterm을 논리합으로 묶기 때문에 곱들의 합이므로 SOP라고 표현한다. (나머지 회로들은 신경 쓰지 않는다. 그 이유는 논리..

논리회로 설계 2022.03.23

논리회로 설계 04

Analysis of a logic network 이는 circuit 를 logic expression으로 conversion 하는 것이다. 예를 들어 위의 그림의 게이트를 식으로 표현하면 (a*b)' + (c*d)' = f 로 나타낼 수 있다. 이처럼 and 는 * 로 or은 + 로 표현이 가능하다. 이때 truth table 을 이용하여 게이트를 표현 할 수 도 있는데, 위 처럼 표현이 가능하다. 이때 truth table은 중간 과정 보다는 입력과 출력값만 을 놓고 보기에 직관적인 장점이 있다. 단점으로 는 입력 노드가 많아진다면 truth table이 기하급수적으로 증가할 수 도 있다. 또한, 위의 두 케이스를 보면 두 회로 모두 각각의 입력값에 대하여 출력값이 동일하다는 것을 알 수 있다. 이를..

논리회로 설계 2022.03.21

논리회로설계

1의 보수의 특징 : 1의 보수를 사용하여 음수를 표현하기로 약속을 하였을때, 이때의 장점은 음수전환이 빠르고, 오버플로가 발생하지 않는 경우에는 계산의 값도 올바르다는 이점이 존재한다. 하지만, 오버플로가 발생한다면 1을 더해주어야 한다는 단점이 존재한다. 2의 보수 : 2의 보수를 사용하여 음수를 표현한다면, 위의 1의 보수를 사용할 때의 단점인 오버플로가 발생할때 1을 더해주는 과정을 하지 않아도 된다. 그 이유는 2의 보수를 취하면서 1을 먼저 더해주기 때문이다. 이러한 보수 표현들은 양수일때에는 사용하지 않고, 음수를 표현 할 때에만 사용한다. 그리고 음수표현된 2의 보수의 값을 알고 싶을 때에는 그 수에 대하여 다시 2의 보수를 취하고, -인 값이 그 값을 뜻한다. 따라서 예를 들자면 1의 보..

논리회로 설계 2022.03.16

js 문법

템플릿 문자열은 문자열 안에 &{}를 활용하여 문자열안에 중괄호안의 결과값을 삽입한다. 이전에 다른 언어에서는 'asd' + a + 'ad' 라고 표현했다면, let word = a 'asd${word}ad' 이렇게 표현 할 수 있다. NaN = '숫자 자료형이지만, 숫자가 아닌 경우' 이에 예시는 let a = Number('word') 이렇게 나타낸다면 a는 NaN이 되는 것이다. 문자열에 대하여 숫자로 + 연산을 하게 되면, 숫자가 문자로 바뀌게 된다. === : 값과 자료형 모두가 같은지 비교 '51' === 51 : false == : 값이 같은지 비교 '51' == 51 : true || 연산자를 변수 초기화에 활용 let a = A || B 이때 A가 참이면 (정의가 되어 값이 들어가 있으면..

javascript 2022.03.14

논리회로 설계 (03)

컴퓨터의 수의 수 체계는 2진수로 이루어져 있다. 따라서 2진수로 표현하고 더하고 빼는 여러 연산을 실행하게 되는데, 여기서 문제가 발생한다. 음수의 표현을 정하는 것인데, 이는 할당된 메모리의 맨 왼쪽의 비트를 부호 할당 비트로 지정하여 0은 양수 1은 음수로 약속을 한다. 따라서 이 방법을 사용하면 4비트가 주어진다면 맨 앞을 부호 할당을 위해 빼기 때문에 나타낼 수 있는 수는 -7 ~ +7 까지가 된다. 그런데 본인이 음수의 표현이 필요 없다면 맨 앞의 비트를 부호 할당을 위해 빼지 않아도 된다. 그러면 온전한 4비트를 사용가능하게 되어 0 ~ 15까지 총 16개의 수가 표현이 가능하다. 이러한 수 체계에도 문제가 발생하는데, 음수와 양수를 더하거나 음수와 음수를 더할때에 앞의 부호 할당자와 뒤의 ..

논리회로 설계 2022.03.14

논리회로 설계 (02)

오늘은 논리회로 2주차를 공부하였다. 1주차에 고민하였던 ASIC vs FPGA 의 cost per chi은 각각의 상황에 따라서 달라진다. 결론은 각각의 한개의 칩만의 가격을 비교해 보자면 ASIC 칩이 더 쌀 수 도 있다. 그 이유는 칩의 가격은 웨이퍼 위의 면적에 따라 달라지기 때문에 FPGA 칩의 면적이 더 크다면 더 비쌀 수 있다. 하지만 앞 주차에 고민 한 결과와 같이 ASIC 칩은 한 두개만 살 수 없기 떄문에 시제품등을 제작할 때에 있어서 많은 양을 주문하기에는 비싸기에 FPGA 칩을 구매하는 것이 더 합리적일 수 있다. 그리고 디지털 시스템의 전체적인 구조에 대해서도 알아 보았다. 우리의 삶은 아날로그로 이루어져 있기에 이를 디지털로, 그리고 그 반대로 변환해 주는 것이 필요하다. 이를 ..

논리회로 설계 2022.03.13

C++ / 01

c++ 주석 방법 1) // 입력 2) /* */로 주석 처리 \는 그 다음줄과 이어준다 예시) // line splicing 의 예 \ (MACRO 정의) 이럴 경우 두 줄 다 주석처리가 된다. 식별자 : 식별자란 변수이름, 함수 이름, 클래스 이름들을 말한다. 식별자를 만드는 규칙 – 영문자 대/소문자, 숫자, 밑줄(_) 을 조합하여 만듦 • 영문자 대/소문자는 구별함 – 숫자로 시작해서는 안됨 – 키워드(keyword)는 식별자로 사용할 수 없음 – 예약된 식별자(reserved identifiers) • 다음과 같은 이름은 예약되어 있음 – 밑줄 한 개로 시작하고 그 다음에 영문자 대문자로 시작하는 이름 (예: _Reserved) – 연속된 두 개의 밑줄을 포함하는 경우 (예: __reserved..

C++ 2022.03.10

논리회로 설계 / 01

digital logic design digital signal - discrete (이산) analog signal -continuous (연속적) 디지털과 아날로그의 차이점은 아날로그는 연속적이고, 미분가능한 값들이지만, 디지털은 순간적인 미분 불가능한 값들이다. 위의 그림처럼 디지털 값들은 순간적으로 불연속적으로 변화하는 모습이다. 하지만 현실에서는 저렇게 표현된는 것이 불가능 하다. 전자의 흐름인 전류 조차도 저렇게 순간적으로 변화 하면 위의 부분이 조금더 튀게 뒤는 오버슈팅 이라는 현상이 발견된다. 따라서 실제로는 저 그래프에 근사하게 지연적으로 값이 변화하게 한다고 한다. 우리가 이런 디지털화를 공부하는 이유는 자연의 모든것은 아날로그 지만 우리가 정보를 전달하고 사용하는 것들은 디지털 체계로..

논리회로 설계 2022.03.07

합병정렬

합병정렬이란 퀵정렬을 보완해서 나온 정렬 방법이라고 생각된다. 퀵 정렬은 기준값을 세운 후 왼쪽 오른쪽에 각각에 나누면서 정렬을 한다. 따라서 나누면서 이진트리 형태를 띄게 된다. 이에 최악의 경우에는 시간복잡도가 N^2이다. 이를 개선하여 처음부터 나누어진 수들을 합치면서 정렬을 한다. 나뉜상태에서 하기 때문에 NlogN으로 시간 복잡도가 일정하다. 코드로 표현하자면 위의 설명과 같이 시간 복잡도는 NlogN이다.

algorithm 2022.03.06