VHDL 최종 보고서목 차 설계의 목표 자료조사 사용부품 사용장비 구현방법 기대효과 일정계획 ( 블록도 ) 프로그램 소스설계의 목표 무엇을 만들 것인가 ? 스톱워치를 만들 예정 입니다 . 분 , 초 , 그리고 알람 기능도 넣었습니다 . 완성품을 가정하고 동작절차를 설명 1. reset 버튼을 누르면 초기화 2. set 버튼을 누르면 분이나 초 설정 3. strtstop 버튼을 눌러서 스톱워치 정지 4. 알람 버튼을 눌러 알람 설정자료조사 시장조사 : 유사제품 있음 고객조사 : 유사 제품이 있음으로 조사하지 않았습니다 .사용 부품사용 장비구현 방법 사용한 도구 : ALTERA MAX PLUS2 이용 필요한 방법 : 프로그래밍 한 것을 컴파일 해서 이상이 없으면 Waveform Editor 로 신호 값을 주고 시뮬레이션 돌린 후 회로를 구성해서 회로를 꾸며 ALTERA 보드에 연결하여 작동이 되는지 확인 합니다 .기대효과 시장에 미치는 영향 : 이미 많은 제품이 있기 때문에 그다지 영향력은 크지 않습니다 . 사회에 미치는 영향 : 짧은 시간을 요하는 운동경기나 , 음식 조리 같은 경우에 사용이 가능한 것으로 시간을 정확하게 재는데 사용됩니다 .일정계획 11 월 2 일까지 : 서적 및 인터넷 조사 11 월 9 일까지 : 소스코드 작성 11 월 16 일까지 : 부품 및 시장조사 11 월 23 일까지 : 회로 구성 11 월 30 일까지 : 실험 및 평가 12 월 7 일까지 : 과제물 제출 12 월 20 일까지 : 최종 제출일스톱워치 reset set strtstop 알람 시간설정 설정 초기화 시작 / 정지 알람설정 ( 블록도 )프로그램 소스 library ieee ; use ieee.std_logic_1164.all; entity Timer_m_3BT is port( clk_2mhz: in std_logic ; sw_reset : in std_logic ; sw_set : in std_logic ; sw_strtstop : in std_logic ; clk10: bufn10: out std_logic_vector (7 downto 0) );-- 7-Segment for 10 min end Timer_m_3BT;architecture Timer of Timer_m_3BT is signal clk100: std_logic ; signal cnt100: integer range 0 to 9; signal cnt10: integer range 0 to 9; signal strtstop : std_logic ; signal sec, min, vmin : integer range 0 to 99; signal mkreset , reload, alarmon : std_logic ; typestatesis (s0, s1, s2); signalcurst: states; function dec_7_seg( bcd : integer range 0 to 9) return std_logic_vector is-- 7 segment decoder variableres : std_logic_vector (7 downto 0); begin if ( bcd = 0) then res := 11000000;-- '1' : OFF elsif ( bcd = 1) then res := 11111001;-- '0' : ON elsif ( bcd = 2) then res := 10100100;-- MSB : Segment ' Dp ' elsif ( bcd = 3) then res := 10110000;-- LSB : Segment 'a' elsif ( bcd = 4) then res := 10011001; elsif ( bcd = 5) then res := 10010010; elsif ( bcd = 6) then res := 10000010; elsif ( bcd = 7) then res := 11011000; elsif ( bcd = 8) then res := 10000000; elsif ( bcd = 9) then res := 10011000; else res :=:= 3; elsif ( val 50 ) then res := 4; elsif ( val 60 ) then res := 5; elsif ( val 70 ) then res := 6; elsif ( val 80 ) then res := 7; elsif ( val 90 ) then res := 8; else res := 9; end if; return res; end get_10_val;function get_1_val( val : integer range 0 to 99) return integer is variable res : integer range 0 to 9; begin if ( val 10 ) then res := val ; elsif ( val 20 ) then res := val-10; elsif ( val 30 ) then res := val-20; elsif ( val 40 ) then res := val-30; elsif ( val 50 ) then res := val-40; elsif ( val 60 ) then res := val-50; elsif ( val 70 ) then res := val-60; elsif ( val 80 ) then res := val-70; elsif ( val 90 ) then res := val-80; else res := val-90; end if; return res; end get_1_val; component clk_div port( clock_2mhz : in std_logic ; clock_100hz : buffer std_logic ); end component;begin clk_1 : clk_div port map(clk_2mhz, clk100); PSET : process( sw_set ) begin if( sw_reset = '0' or mkreset = '0' ) then vmin = 0; elsif ( sw_set'event and sw_set = '0' ) then if( vmin /= = '0'; end if; end if; end process;PSTAT : process( sw_reset , sw_set , sw_strtstop , clk100) begin if( sw_reset = '0' or mkreset = '0' ) then curst = s0; mkreset = '1'; alarmon = '0'; elsif ( clk100'event and clk100='1' ) then if( curst=s0 ) then if( sw_set = '0' ) then reload = '1'; mkreset = '1'; elsif ( sw_strtstop = '0' ) then if( reload ='1' ) then reload = '0'; curst = s1; end if; end if; elsif ( curst=s1 ) then if( sw_set = '0' ) then mkreset = '0'; curst = s0; elsif ( min=0 and sec=0 and cnt10=0 and cnt100=0 ) then curst = s2; alarmon = '1'; end if; elsif ( curst=s2 ) then if( sw_set = '0' ) then mkreset = '0'; curst = s0; alarmon = '0'; end if; end if; end if; end process;P1 : process( sw_set , clk100) begin if( sw_reset = '0' or mkreset = '0' ) then cnt100 = 0; clk10 = '0'; elsif ( clk100'event and clk100 ='1' ) then if( cnt100=0 or cnt100=5) then clk10 = not clk10; end if; if( cnt100 = 0) then cnt100 = 9; else cnt100 = cnt100 - 1; end if; end if; end process; P2 : process( rocess( sw_set , clk1) begin if( sw_reset = '0' or mkreset = '0' ) then sec = 0; elsif ( clk1'event and clk1 ='1' ) then if( curst = s1 ) then if( sec=0 ) then sec = 59; else sec = sec - 1; end if; end if; end if; end process; PMIN : process( sw_set , clk1) begin if( sw_reset = '0' or mkreset = '0' ) then min = 0; elsif ( reload = '1' ) then min = vmin ; elsif ( clk1'event and clk1 ='1' ) then if( sec=0 ) then if( min/=0 ) then min = min - 1; end if; end if; end if; end process;POUT : process(sec, min) VARIABLET : INTEGER RANGE 0 TO 9; begin alarm = alarmon and clk1; t := get_10_val( sec ); d7_sec10 = dec_7_seg( t ); t := get_1_val( sec ); d7_secbase = dec_7_seg( t ); t := get_10_val( min ); d7_min10 = dec_7_seg( t ); t := get_1_val( min ); d7_minbase = dec_7_seg( t ); end process; end Timer;library ieee ; use ieee.std_logic_1164.all; entity clk_div is port( clock_2mhz : in std_logic ; clock_100hz : buffer std_logic ); end clk_div ; architecture a of clk_div is signal count_100hz : int
데이터를 전송하려면 실제 보내는 데이터 이외에도 그 데이터에 대한 여러가지 정보를 담고있는 부수적인 데이터가 필요하다.각 프로토콜은 이런 부수적 데이터들을 헤더에 담아서 보낸다. 이것은 편지를 쓸때 편지지만 달랑 집배원에게 주는 것이 아니라 편지 봉투에 보내는이와 받는이의 주소를 써서 그안에 편지지를 넣어 보내는 것과 비슷한 이치이다.1.IP(Internet Protocol) HeaderIP 계층의 패킷은 데이터그램(datagram)이라고 한다. 이 데이터그램은 가변 길이의 패킷으로 헤더와 데이터부분으로 구성된다. 헤더는 20~60 bytes 이고, 라우팅(routing)과 전달에 필요한 정보를 포함한다. TCP/IP에서는 보통 헤더를 4bytes 단위로 보여준다.- 버전(version). 이 4 비트 필드는 IP 프로토콜의 버전을 나타낸다. 현재 버전은 4이므로 IPv4라고 표시한다. 그러나 수년 내에 버전 6(또는 IPng)으로 대치될 것이다. 이 필드는 시스템 내에서 수행되고 있는 IP 소프트웨어에게 데이터그램이 버전 4 형식으로 되어 있다는 것을 알려준다. 모든 필드는 버전 4 프로토콜에 지정된 바와 같이 해석되어야 한다. 만약 시스템이 다른 버전의 IP 소프트웨어를 사용하고 있다면 잘못 해석되지 않도록 이 데이터그램은 폐기된다.- 헤더 길이(header length). 이 4 비트 필드는 데이터그램 헤더의 전체 길이를 4 바이트 단위로 나타낸다. 이 필드는 데이터 그램의 헤더 길이가 20~60 바이트 사이에서 변할 수 있으므로 필요하다. 만약 선택사항이 없다면 헤더의 길이는 20바이트이고, 이 필드의 값은 5가 된다.(5 X 4 = 20) 만약 선택사항 필드가 최대 길이라면 이 필드의 값은 15가 된다(15 X 4 = 60).- 차별화된 서비스(과거 명칭 TOS(type of service)). 과거에는 서비스유형(TOS)라고 하였으나 최근에는 차별화된 서비스(Differentiated Services)라고 불린다. 8 비트 필드이다.-- 서비스유형(이다. 우선 순위는 혼잡과 같은 문제가 발생하였을 경우 데이터그램의 우선 순위를 정의한다. 만약 라우터에 혼잡이 발생하여 데이터그램의 일부를 폐기해야한다면 가장 낮은 우선 순위 값을 가진 데이터그램이 가장 먼저 폐기된다. 인터넷에서 어떤 데이터그램은 다른 데이터그램보다 더 중요하다. 예를 들어 네트워크 관리를 위해 사용되는 데이터그램은 오사용자 그룹에 옵션 정보를 보내기 위해 사용되는 데이터그램보다 더 급하고 중요하다. 그러나 현재 우선 순위 서브필드는 사용되지 않고 있다. 다음 버전에서는 사용될 것으로 기대된다. b. TOS 비트는 4비트의 서브필드로서 각 비트는 특별한 의미를 갖는다. 비트는 0 또는 1의 값을 가질 수 있지만, 각 데이터그램에서 오직 한 비트만 1의값을 가질 수 있다. 한 번에 한 비트만 1이 될 수 있으므로 총 다섯개의 서비스 유형이 가능하다. 응용 프로그램은 특정한 서비스 유형을 요청할 수 있다. TELNET과 같은 프로토콜은 대화형 활동(interactive activity)으로 최소 지연이 요구된다. 하지만 FTP같은 대량의 데이터를 전송하는 활동은 최대 처리율(Maximaize throughput)이 필요하다. SNMP와 같은 관리 활동은 최대 신뢰성(Maximize reliability)가 필요하다.-- 차별화된 서비스(Differentiated Services). 이 해석에서 처음 6 비트는 코드포인트(codepoint) 부필드이고 마지막 두 비트는 사용되지 않는다. 코드포인트 부필드는 다음 두 방법으로 사용될 수 있다. a. 오른쪽 세 비트가 0이면 왼쪽 세 비트는 서비스 유형에서의 우선 순위와 같은 의미로 해석된다. 즉 과거의 해석과 같다. b. 오른쪽 세비트가 모두 0이 아니면 6 비트는 인터넷이나 지역 당국에 의하여 부여된 우선 순위에 따라 64대 서비스를 정의한다. 처음 범주는 32개의 서비스를 포함하고 두 번째와 세 번째 범주들은 각각 16개의 서비스를 포함한다. 첫 범주(번호 0, 2, 4, ..., 62)는 인터 않다. 만약 연속적이라면 처음 범주는 0에서 31, 두 번째 범주는 32에서 47, 세 번째 범주는 48에서 63까지이었을 것이고 XXX000(0, 8, 16, 24, 32, 40, 48과 56)이 세 범주에 다 들어가기 때문에 TOS 해석과 일치하지 않게 된다. 대신 이 번호 지정에서 모든 서비스는 첫 번째 범주에 속한다. 이 범호 지정의 아직 최종 결정된 것은 아니다.- 전체 길이(total length). 이 16 비트의 필드는 헤더와 데이터를 포함하는 IP 데이터그램의 전체 길이를 바이트 단위로 나타낸다. 상위 계층으로부터 받는 데이터 길이를 알아내기 위해 전체 길이에서 헤더 길이를 빼면 된다. 헤더의 길이는 header length 필드의 값에 4를 곱하면 된다.데이터 길이 = 전체 길이 - 헤더 길이필드의 길이가 16 비트이므로 IP 데이터그램의 전체 길이는 65,535(2^16 - 1) 바이트로 제한되고, 이 중 20 ~ 60 바이트는 헤더이고 나머지가 상위 계층으로부터 받는 데이터이다. 65,535 바이트의 길이는 현재 기술에서 매우 크게 느껴진다. 그러나 하위 계층의 기술이 발달하여 더욱 높은 처리율(더 큰 대역폭)을 가지는 네트워크를 사용할 수 ㅣㅇㅆ게 된다면 가까운 미래에 IP 데이터그램의 길이는 증가할 수 있을 것이다. 왜 이러한 필드가 필요한지 궁금할 수도 있다. 라우터나 호스트와 같은 시스템이 프레임을 받으면 헤더와 트레일러는 없애고 데이터그램만 남긴다. 대부분의 경우 이 필드의 값이 필요하지 않는다. 그러나 어떤 경우에는 프레임 내에 포함된 것이 데이터그램만이 아니라 추가된 패딩이 있을 수도 있다. 예를 들어 이더넷 프로토콜은 프레임 내에 포함될 수 있는 데이터 길이에 대한 최소값(46 바이트)과 최대값(1,500 바이트)이 있다. 만약 IP데이터그램의 길이가 46 바이트 이하라면 이 요구 사항을 만족시키기 위해 패팅이 필요하다. 이러한 경우 시스템이 데이터그램을 프레임에서 추출한 후 어디까지가 데이터이고 어디까지가 패딩인지 알기 야한다. 이러한 유일성을 보장하기 위해 IP 프로토콜은 카운터를 사용하여 데이터그램에 레이블을 붙인다. 이 카운터는 양의 수로 초기화된다. IP프로토콜이 데이터그램을 보낼 때 카운터의 현재 값을 식별자 필드에 복사하고 카운터 값을 1 증가시킨다. 카운터 값이 주기억장치 내에 유지되는 한 유일성은 보장된다. 데이터그램이 단편화 될 때 식별자 필드의 값은 모든 단편에 복사된다. 다시 말해서 모든 단편은 같은 식별자 값을 가지게 되며, 이 값은 원 데이터그램의 값과 같다. 식별자는 목적지에서 데이터그램을 재조립하는데 도움이 된다. 같은 식별자 값을 가지는 모든 단편은 하나의 데이터그램으로 재조립되어야 한다.- 플래그(Flags). 이는 3 비트의 필드이다. 처음 비트는 사용되지 않으며, 두 번째 비트는 do not fragment 비트 이다. 이 플래그의 값이 1이면 시스템은 데이터그램을 단편화해서는 안된다. 단편화를 수행하여야 하는데 이 비트가 설정되어 있어 네트워크를 통하여 데이터그램을 전달할 수 없다면 데이터그램을 폐기하고 ICMP 오류 메세지를 발신지 호스트에 보낸다. 만약 이 값이 0이면 필요한 경우 데이터그램은 단편화 될 수 있다. 세 번째 비트의 이름은 more fragment 비트이다. 이 값이 1이면 데이터그램은 마지막 단편이 아니라는 것을 알려준다. 만약 0이면 마지막 단편이거나 유일한 단편이다.- 단편 옵셋(Fragmentation offset). 이 13 비트 필드는 전체 데이터그램 내에서 단편의 상대적 위치를 나타낸다. 이 필드는 원 데이터그램 내에서 데이터의 옵셋을 8 바이트 단위로 나타낸 것이다. 원 데이터그램의 바이트는 0부터 3,999의 번호를 가진다. 첫 번째 단편에는 0에서 1,399번까지의 바이트가 있으며 0/8 = 0의 옵셋값을 가진다. 두 번째 단편은 1,400번에서 2,799번까지의 바이트를 가지고 있으며 옵셋값은 1,400/8 = 175이다. 마지막 세 번째 단편은 2,800번에서 3,999번까지의 바이트를 가지고 있으며 감소하게 된다. 이 필드의 값이 0이 되면 데이터그램은 폐기된다. 그러나 이렇게 하기 위해서는 모든 장비의 클럭이 동기화 되어야하고 데이터그램이 한 장비에서 다음 장비까지 가는데 걸리는 시간을 알 수 있어야 한다. 오늘날 이필드는 데이터 그램에 의해 방문되는 최대 홉(라우터) 수를 제어하기 위해 사용된다. 발신지 호스트가 데이터그램을 보낼 때 이필드에 숫자를 저장한다. 이 값은 대략 두 호스트 사이에 위치한 라우터 수의 두 배이이다. 데이터그램을 처리하는 각 라우터는 이 필드의 값을 1씩 감소시킨다. 만약 감소 후 값이 0이 되면 라우터는 데이터그램을 폐기한다. 인터넷의 라우터가 오작동을 함으로써 오류가 발생한다면 이 필드가 없을 경우 데이터그램은 둘 또는 그 이상의 라우터들 사이에서 오랫동안 돌아다니게 될 것이다. 그러면 많은 자원이 낭비되게 된다.- 프로토콜(Protocol). 이 8 비트 필드는 IP 계층의 서비스를 사용하는 상위 계층 프로토콜을 정의한다. IP 데이터그램은 TCP, UDP, ICMP, IGMP와 같은 여러 종류의 상위 계층 프로토콜을 캡슐화 할 수 있다. 이 필드는 데이터그램이 전달되어야 하는 최종 프로코콜을 나타낸다. 다른 말로 설명하면 IP프로토콜은 다른 종류의 상위 계층 프로토콜로부터 오는 데이터를 다중화 및 역다중화하므로 데이터 그램이 최종 목적지에 도달한 경우 이 필드의 값은 역 다중화의 과정을 돕게 된다.- 검사합(CheckSum). 대부분의 TCP/IP 프로토콜에 의해 사용되는 오류 검출 방법이다. 이것은 송신자에 의해 계산되고 패킹과 함께 전송된다. 수신자는 검사합을 포함하고 있는 전체 패킷에 대해 같은 계산을 반복한다. 결과가 만족되는 패킷은 받아들여지고 그렇지 않으면 폐기된다.- 발신지 주소(Source address). 이 32 비트의 필드는 발신지의 IP주소를 정의한다. IP데이터그램이 발신지에서 목적지까지 전달되는 동안 이 값은 변해서는 안 된다.- 목적지 주소(Destination address). 이 32 비트다.
계시란 무엇인가모든 진리는 하나님에게서 나오며, 진리는 인간이 만드는 것이 아니라 주어진 것을 단지 발견하는 것이라는 사실은 자연히 우리를 “계시”의 교리로 이끌어 준다.? 하나님은 동시에 계시의 주체와 객체로서 진리이신 하나님 자신을 하나님 스스로가 다양한 방식으로 계시하여 세계와 인류가 진리 안에서 살기를 원하신다.? 진리가 계시되지 않는다면 인류는 거짓과 어둠 속에서 헤맬 수밖에 없기 때문에, 하나님의 계시는 인류와 세계를 비추이는 빛과 같은 하나님의 은총이다.1. 계시계시(revelation, 啓示)란 “숨겨져 있는 것을 (커튼을 열어 보여 주듯이) 나타내 보여 준다”는 뜻을 가지고 있다.? 그러나 계시라는 말은 일반적으로 “하나님의 계시(divine revelation)”에만 한정되어 사용되며, 특히 진리이신 하나님의 “자기계시(self-revelation)”적 성격이 강조된다.? 계시라는 말은 이러한 계시행위나 그로 인해 계시된 진리를 가리킨다.? 그리고 계시는 자동적이 아니며 의도적이다.? 비록 하나님 자신이 진리이시기 때문에 그의 모든 말씀과 행위와 창조가 자동적으로 진리성을 반영하지만, 그 어느 것 하나도 하나님은 의도 없이 말씀하시거나 행하시거나 만드시지 않고 그의 무궁한 지혜와 경륜에 따라 된 것이다.따라서 계시는 의도성을 중심으로 계시자와 피계시자의 관계에서 이루어지며 모종의 의사전달 매체(communication media)를 필요로 한다.? 피계시자는 의사전달이 가능한 모든 생물이 될 수 있지만, 인간이 그 궁극적 대상이다.? 그런데 과연 인간이 하나님의 계시를 받아 이해할 수 있는 능력이 있는가?? 이 질문은 매우 중요하지만, 오히려 우리는 먼저 하나님의 능력에서 문제를 풀어 나가야 한다.? 하나님은 제한된 이해능력을 가지고 있는 인간에게도 그의 무한한 능력으로 어느 정도까지는 그의 계시를 이해하고 수용하도록 만들 수 있는 능력이 있다.? 무엇보다도 인간은 “하나님의 형상”대로 창조되었기 때문에 감성과 오성 구조에 있어서 하나님과 유사성을 가지고 있어서, 비록 오염되고 둔화된 이성으로도 종류와 정도에 따라서는 하나님의 계시를 이해할 수 있는 능력이 인간에게 있다.? 그리고 이성의 수용능력을 넘는 계시의 종류나 정도는 하나님의 부가적인 은총으로 주어지는 “신앙”의 기관으로 이해할 수 있다.? 그래서 어거스틴이나 안셈은 신앙이야말로 진정한 지식의 기관이며 올바른 이성사용의 구비조건임을 논술했으며, 다음과 같은 유명한 말을 남겼다: “우리는 알기 위해서 믿는다(Credo ut intelligam).”프란시스 베이컨은 “인간의 지식은 물과 같아서 위에서 빗물처럼 내려오기도 하고 아래에서 샘물처럼 솟아나기도 한다”고 말했는데, 이는 계시에 두 종류가 있음을 전제하고 있다.? 즉 “일반계시(general revelation)”와 “특별계시(special revelation)”를 가리킨다.2. 일반계시일반계시란 자연을 통해서 모든 인류에게 보편적으로 전달되는 계시를 의미하기 때문에, “자연계시(natural revelation)”라고도 하며, 그 성격상 “비언어적 계시(non-verbal revelation)”라고도 한다.? 작품이 작가의 정신세계를 반영하듯이 하나님께서 만드신 자연세계는 하나님의 존재와 원리를 반영한다.? 시편 19편은 자연계시의 존재를 시적으로 표현하였다: “하늘이 하나님의 영광을 선포하고 궁창이 그 손으로 하신 일을 나타내는도다.? 날은 날에게 말하고 밤은 밤에게 지식을 전하니, 언어가 없고 들리는 소리도 없으나 그 소리가 온 땅에 통하고 그 말씀이 세계 끝까지 이르도다.”? 또한 로마서 1장 20절은 그것을 직설적으로 강조하였다: “창세로 그의 보이지 아니하는 것들, 곧 그의 영원하신 능력과 신성이 그 만드신 만물에 분명히 보여 알게 되나니, 그러므로 저희가 핑계치 못할지니라.”기독교문화란 진정한 문화를 건설하는 모든 창조활동이라는 폭넓은 견해가 있다.? 이 견해는 하나님의 우주적 주권을 강조하며 하나님의 형상대로 창조된 인간이 수행하는 모든 긍정적 문화활동은 하나님의 뜻이며, 모든 진리는 하나님의 진리라고 생각한다.? 하나님의 것이 아닌 것은 거짓과 추함과 악함뿐이라고 보고, 진리와 아름다움과 선함을 반영하는 모든 문화활동을 기독교적이라고 포함시킨다.? 아브라함 카이퍼(Abraham Kuyper)가 창시한 신칼빈주의는 이러한 긍정적이고 포괄적인 기독교문화운동을 출범시켰다.? 그는 이 견해를 기독교인과 비기독교인에게 공통적으로 주어지는 하나님의 일반은총(common grace)이론에 근거하였다.? 인간의 범죄와 타락에도 불구하고 인류를 향한 하나님의 사랑은 보편적인 은총의 대상이 된다는 이 일반은총론은 다음 일곱 가지 근거에 기인한다: (1) 만물을 통치하고 보존하는 하나님의 보편적 섭리, (2) 하나님의 속성적 자비와 사랑, (3) 일반계시를 통한 진리의 빛, (4) 가정을 비롯한 창조질서, (5) 하나님의 형상대로 창조된 인간성, (6) 그리스도의 대속과 그로 인한 세계의 구속, (7) 세상의 빛과 소금으로서의 언약공동체의 존재.? 그러므로, 헨리 미터(Henry Meeter)는 심지어 비기독교인에 의해 수행되었다 할지라도 “하나님이 베푸신 일반은총의 열매들이 어디서 맺히든지 하나님의 명예와 그의 나라의 발전을 위하여 그것을 감사함으로 사용하는 것(thankful use)이 우리의 의무다”고 말하였다.? 실로 성경에서 우리는 문화에 대해 지나친 구분을 발견할 수 없다.? 이방인이 그리스도를 영접할 때 모든 기존문화를 버리라고 하지 않았다.일반계시는 크게 세 영역에서 나타난다.? 첫째로, 자연에 나타나는 하나님의 지혜로서 우리가 “자연법칙”이라고 부르는 자연현상의 질서 있는 원리의 존재와 논리적인 구조, 그리고 자연의 조화와 아름다움이다.? 또한 자연의 압도적인 크기와 형언할 수 없는 정교성에서 우리는 이 대자연을 창조하신 하나님의 위대하심을 찬양하게 된다.? 자연의 오묘함과 신비함을 대수롭지 않게 무시해 버리고 그 창조자를 부인하는 사람은 어리석은 사람이거나 강팍한 사람일 것이다.? 따라서 변명이 불가능하다(롬 1.20).둘째로, 인간의 정신구조에 나타나는데, 이는 사람이 “하나님의 형상”대로 창조된데 기인한다.? 아버지를 닮은 아들을 보고 그 아버지의 특성을 이해할 수 있는 것과 같이, 하나님의 마음을 닮게 만들어진 인간의 정신구조는 하나님을 상당히 반영한다.? 무엇보다도, 인간에게는 거룩함과 영원, 그리고 절대적 가치를 추구하는 종교성이 있다(전 3.11, 행 17.22-29).? 따라서 하나님을 섬기지 않는 사람들은 그 종교성을 만족시키기 위하여 여러 가지 인위적인 종교와 대체적인 우상을 만들고 섬겨오고 있다(롬 1.18-25, 빌 3.19, 창 4.16-22).? 그리고 인간의 감정과 이성도 하나님의 마음을 계시해 준다.? 사랑하고 긍휼히 여기는 마음, 기뻐하고 슬퍼할줄 아는 다정다감한 마음, 아름다움과 조화를 추구하는 미적 감각, 논리적이고 질서있게 생각하는 이성적 사고 등 인간의 정상적인 정신구조는 진리이신 하나님의 반영이다.? 따라서 인류를 향하신 하나님의 도덕적인 뜻이 유대민족처럼 직접 도덕법을 받지 못한 사람들에게도 동일하게 요구되고 적용되는 이유는 바로 양심이 그 기능을 담당하기 때문이다(롬 2.14-15).? 철학자 임마누엘 칸트는 그의 명저 [실천이성비판]에서 이점을 훌륭하게 논술하였다.셋째로, 하나님의 섭리가 반영되는 역사에 나타난다.? 성경은 하나님께서 역사를 주관하며 보존하시며 섭리하심을 가르쳐 주고 있다(시 75.6-7, 렘 18.1-12, 행 17.26-27).? 따라서 역사의 전개과정을 통해서 역사의 교훈을 얻는 것은 하나님을 이해하는 한 방편이 된다.? 그러나 우리가 조심해야 할 점은 인류역사는 하나님의 단독사역의 결과가 아니라 악령과 죄인의 파괴적 작용이 많은 부분을 차지하고 있기 때문에 모든 역사적 사건이 하나님의 뜻이라고 생각하는 단순한 역사주의(historicism)나 운명주의(fatalism)에 빠지지 않는 것이다.? 최후의 심판이 있은 후에야 절대적인 역사적 평가는 가능할 것이다.? 그러므로 그 이전에는 하나님의 계시된 역사원리를 기준으로 역사를 이해하고 계시를 발견해야 한다.3. 특별계시특별계시란 초자연적 방식을 통해서 제한된 사람들에게 전달되는 계시를 의미하기 때문에, “초자연적 계시(super-natural revelation)”라고도 한다.? 그 대부분은 언어로 표현되기 때문에 “언어적 계시(verbal revelation)”이지만, 환상이나 기적같은 비언어적 계시도 있다.? 특별계시는 자연계시보다 더 직접적이고 분명하며 자연계시를 보완해 주고 혹은 강조적으로 반복하며 바르게 해석해 주기도 한다.? 따라서 특별계시에는 상당량의 일반계시가 포함되어 있다.? 그러나 비진리의 오염과 자연의 혼란으로 인해 흐려지고 도착된 일반계시는 종교개혁자 칼빈이 말대로, 특별계시의 안경을 통해서만 분명하고 올바르게 이해될 수 있다.? 그리고 죄인의 구원을 위해서는 특별계시를 통한 하나님의 은총이 필수적으로 요청된다.? 왜냐하면 일반계시의 원리에 의해서는 죄인에게 오로지 심판과 멸망밖에 있을 수 없기 때문이다.? 그러나 모든 하나님의 계시는 하나로서 그리스도 안에서 통일성을 가지고 있다(골 1.16-17, 엡 1.10, 롬 8.19-22).
참고도서: 컴퓨터구조 김성철 저 도서출판 그린, 컴퓨터구조론 김종현 저 생능출판사제목: 캐쉬 메모리 쓰기 정책캐쉬 쓰기 정책(Write Policy)캐쉬의 연산은 캐쉬 읽기와 캐쉬 쓰기로 구분할 수 있다.CPU로 읽혀진 블록의 데이터는 CPU에서 연산 후에 다른 내용으로 바뀌는 경우가 있다. 이 때 바뀐 결과는 최종적으로 메모리에 저장되어져야 한다. 왜냐하면 캐쉬의 내용은 사실 주 메모리의 복사분이기 때문이다. 즉, 캐쉬의 내용과 주 메모리의 내용이 바뀌면 주 메모리의 내용도 바뀌어야 한다. 만약 바뀌지 않고 캐쉬의 내용과 주 메모리의 내용이 다를 경우에는 많은 문제를 발생하게 된다.캐쉬의 어떤 블록이 변경되었을 때, 주 기억 장치의 블록의 내용을 교체하는 방법에 따라 성능에 많은 영향을 미친다. 이처럼 캐쉬의 블록 내의 데이터가 변경되었을 때 그 내용을 주 기억장치에 변경하는 시기와 방법을 결정하는 것을 쓰기정책(Write Policy)이라 부른다.쓰기 정책에는 바로쓰기(Write through) 방식과 나중쓰기(Write Back) 방식이 있다.바로쓰기(Write through)이 정책에는 모든 쓰기 동작들이 캐쉬로 뿐만 아니라 주기억장치로도 동시에 행해진다.CPU의 동작과 DRAM의 액세스 시간의 커다란 차이로 인하여 데이터가 DRAM에 쓰여지기까지 CPU가 기다려야 하는 문제가 발생한다. 또한 주 메모리인 DRAM에 많은 메모리 트래픽이 발생하므로 이 방법의 주요 단점은 쓰기 동작에 걸리는 시간이 길어진다는 것이다.따라서 이러한 메모리와 CPU의 동작 속도에 따르는 성능 저하를 막기 위하여 쓰기버퍼(Write butter)를 사용한다.쓰기버퍼는 마이크로프로세서와 DRAM 메모리 사이에 위치한다.CPU는 데이터를 캐쉬와 쓰기버퍼에 동시에 쓴다. 이 후에 CPU는 쓰기 동작이 끝난 것처럼 캐쉬 쓰기 동작을 멈추고 다른 동작을 시작하고, 쓰기버퍼 제어기(controller)가 쓰기버퍼로부터 DRAM으로 데이터를 이동시킨다. 쓰기버퍼는 단순한 FIFO 형식의 버퍼로써 일반적으로 4 개 정도의 엔트리를 가진다. 그러나 비록 쓰기 버퍼를 사용하더라도 다음과 같은 문제점을 가진다. 즉, CPU로부터 쓰기버퍼로의 쓰는 속도가 제어기가 쓰기버퍼로부터 DRAM으로 이동시키는 속도보다 빠를 경우에는 쓰기 버퍼에서 데이터의 오버플로우가 발생하게 된다. 이를 쓰기버퍼 포화(saturation)이라고 부른다.이러한 쓰기 버퍼를 해결하는 방법으로는 2차 캐쉬를 사용함으로 해결할 수 있다.2차 캐쉬는 DRAM의 주메모리보다 동작 속도가 훨씬 빠르다.