Zip 압축파일 Header 구조


사용자 삽입 이미지

< Zip 파일의 내부 구조 분석 >


사용자 삽입 이미지
1. Local File Header(30byte: 가변값 제외)
     local file header signature  - 4 bytes - (0x04034b50) : 고유 값
     version needed to extract    - 2 bytes
     general purpose bit flag     - 2 bytes
     compression method           - 2 bytes
     last mod file time           - 2 bytes
     last mod file date           - 2 bytes
     crc-32                       - 4 bytes
     compressed size              - 4 bytes
     uncompressed size            - 4 bytes
     file name length             - 2 bytes
     extra field length           - 2 bytes
     file name (variable size)
     extra field (variable size)


2. Central File Header(46byte: 가변값 제외)
     central file header signature - 4 bytes - (0x02014b50) : 고유 값
     version made by               - 2 bytes
     version needed to extract     - 2 bytes
     general purpose bit flag      - 2 bytes
     compression method            - 2 bytes
     last mod file time            - 2 bytes
     last mod file date            - 2 bytes
     crc-32                        - 4 bytes
     compressed size               - 4 bytes
     uncompressed size             - 4 bytes
     file name length              - 2 bytes
     extra field length            - 2 bytes
     file comment length           - 2 bytes
     disk number start             - 2 bytes
     internal file attributes      - 2 bytes
     external file attributes      - 4 bytes
     relative offset of local header 4 bytes
     file name (variable size)
     extra field (variable size)
     file comment (variable size)


3. End Header(22byte: comment 제외)
     end of central dir signature  - 4 bytes - (0x06054b50) : 고유값
     number of this disk           - 2 bytes
     number of the disk with the start of the central directory    - 2 bytes
     total number of entries in the central directory on this disk - 2 bytes
     total number of entries in the central directory              - 2 bytes
     size of the central directory - 4 bytes
     offset of start of central directory with respect to the starting disk number - 4 bytes
     .ZIP file comment length      - 2 bytes
     .ZIP file comment (variable size)
 
*참고 사이트:
 zip 알고리즘(Deflate) - http://ko.wikipedia.org/wiki/DEFLATE, http://en.wikipedia.org/wiki/DEFLATE
 LZ 77 알고리즘 - http://home.postech.ac.kr/~ehoto/lz77.htm

 ZIP File Format Specification - http://www.pkware.com/documents/casestudies/APPNOTE.TXT

 zlib Home page - http://www.zlib.net/
 Winimage.com minizip - http://www.winimage.com/zLibDll/minizip.html

 Zlib Library Manual - http://kaistizen.net/project/Zip/Index.htm
 Zlib 활용(글쓴이: 윤상배) - http://www.joinc.co.kr/modules/moniwiki/wiki.php/article/zlib_prog

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2009/07/31 19:59 2009/07/31 19:59

Leave a comment
[로그인][오픈아이디란?]

키보드 특수기호 이름

`  Grave                         '~ Tilde
 ! Exclamation Point         @ At Sign                 # Crosshatch
 $ Dollar Sign                  % Percent Sign          ^ Circumflex
 & Ampersand                * Asterisk

( Left Parenthesis            ) Right Parenthsis
- Hyphen                       _ Underscore
\ Back Slash                 | Vertical Bar

[ Left Braket                   ] Right Braket
{ Left Brace                   } Right Brace

; Semicolon                   : Colon
' Aposterophe or Single Quotation Mark
" Double Quotation Mark
, Comma                       . Period                    / Slash
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2009/03/22 17:39 2009/03/22 17:39

Comments List

  1. ㅠㅠ 2009/07/08 11:34 # M/D Reply Permalink

    하이픈 을 순간 못알아들어서..우울..ㅠㅠ

  2. 나그네  2009/10/29 03:51 # M/D Reply Permalink

    위에 틀렸어요...

    ' <-- Single Quotation Mark 또는 Quotation Mark (허긴 어포스트로피로 쓰기도 하니끼리... ㅎ;;; )
    " <-- Double Quotation Mark

    이에요;;;

    1. downright  2009/10/30 12:56 # M/D Permalink

      저도 다른 곳 검색하다가 작성한 것이어서
      자세히 확인을 못했었네요.
      수정하였습니다.^^ 고맙습니다.

Leave a comment
[로그인][오픈아이디란?]

Huffman Code

사용자 삽입 이미지
Huffman Code는?

디지털 전송에서 평균 부호의 길이를 가장 짧게 할 수 있는 가변 길이 부호(variable length code)의 하나.
신호의 발생 빈도를 고려해서 Code를 배정하는 방법으로, 빈도수가 높으면 Code의 길이를 짧게,
빈도수가 낮으면 Code 길이를 길게 배정한다. 이렇게 배정을 하면 데이터의 손실없이 전체 크기를 줄이는
효과를 가져오게 된다. Fax나 JPEG, MPEG등 각종 정보 압축 규격으로 많이 사용되고 있다.

총 1000개의 글자가 있다고 가정하고, 글자를 3bit로 표현할 경우 총 3000bit를 필요로 한다.
하지만, Huffman code를 사용하게 되면 2180bit를 차지하므로 약 2/3로 압축된 것을 알 수 있다.

    글자    빈도    고정      가변
     a:     450개,   000,      0
     b:     250개,   001,      101
     c:     120개,   010,      100
     d:     100개,   011,      111
     e:      80개,   100,      1101

Huffman Code 만드는 법

사용자 삽입 이미지
(a) 코드를 발생 빈도 기준으로 오름차순 정렬한다.

(b) 가장 발생 빈도가 낮은 코드를 묶어서 하나의 가지를 만들고, 가지의 위쪽에 빈도의 합을 적는다.
     빈도가 낮은 코드의 마지막 bit를 '0'과 '1'로 배정한다.

(c) 묶은 가지를 기준으로 오름차순 정렬을 수행해서, 빈도가 낮은 코드가 2개 이상이면 새로운 가지를 만든다.
     처음 만들어진 가지의 빈도 합이 14이고, 그 합보다 낮은 코드가 b(13)와 c(12)이 있으므로 이 둘을 하나의
     가지로 만든다.

(d~e) (a)부터 (c)의 과정을 반복해서 수행한다.

(f) Huffman tree로 모든 Code가 묶어지면, 가지를 따라 내려오면서 코드를 배정하면 된다.
    가지의 시작점이 상위 bit에 해당한다.

* 참고: http://en.wikipedia.org/wiki/Huffman_coding, http://yatoyato.tistory.com/1015
          http://www.cs.fsu.edu/~cop4531/slideshow/chapter17/17-3.html
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2008/10/11 23:22 2008/10/11 23:22

Leave a comment
[로그인][오픈아이디란?]

Physical constant - 물리 상수

사용자 삽입 이미지
크리에이티브 커먼즈 라이센스
Creative Commons License

"기타" 카테고리의 다른 글

Posted by downright

2008/05/02 13:21 2008/05/02 13:21

Leave a comment
[로그인][오픈아이디란?]

In mathematics, the Taylor series is a representation of a function as an infinite sum of terms calculated
 from the values of its derivatives at a single point. It may be regarded as the limit of the Taylor polynomials.
 Taylor series are named in honour of English mathematician Brook Taylor.
If the series uses the derivatives at zero, the series is also called a Maclaurin series,
named after Scottish mathematician Colin Maclaurin.

The Taylor series of a real or complex function f(x) that is infinitely differentiable in a neighborhood of a real
 or complex number a, is the power series

which in a more compact form can be written as
 

where n! is the factorial of n and f (n)(a) denotes the nth derivative of f at the point a;
the zeroth derivative of f is defined to be f itself and (x − a)^0 and 0! are both defined to be 1.

Often f(x) is equal to its Taylor series evaluated at x for all x sufficiently close to a.
This is the main reason why Taylor series are important.

In the particular case where a = 0, the series is also called a Maclaurin series.

Examples

The Maclaurin series for any polynomial is the polynomial itself.

The Maclaurin series for (1 − x)^(− 1) is the geometric series


so the Taylor series for x^(− 1) at a = 1 is


By integrating the above Maclaurin series we find the Maclaurin series for -ln(1-x),
where ln denotes the natural logarithm:


The Maclaurin series for the exponential function e^x at a = 0 is


The above expansion holds because the derivative of e^x is also e^x and e^0 equals 1.
This leaves the terms (x − 0)^n in the numerator and n! in the denominator for each term in the infinite sum.

사용자 삽입 이미지

(As the degree of the Taylor polynomial rises, it approaches the correct function.
This image shows sinx and Taylor approximations, polynomials of degree 1, 3, 5, 7, 9, 11 and 13.)


* 출처: http://en.wikipedia.org/wiki/Taylor_series

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2008/03/15 17:08 2008/03/15 17:08

Leave a comment
[로그인][오픈아이디란?]

Monte Carlo method

A Monte Carlo method is a computational algorithm which relies on repeated random sampling to compute its results. Monte Carlo methods are often used when simulating physical and mathematical systems. Because of their reliance on repeated computation and random or pseudo-random numbers, Monte Carlo methods are most suited to calculation by a computer. Monte Carlo methods tend to be used when it is infeasible or impossible to compute an exact result with a deterministic algorithm.

몬테카를로 법(Monte Carlo method)은, 물리적, 수학적 시스템의 행동을 시뮬레이션하기 위한 계산 알고리즘이다. 다른 알고리즘과는 달리 통계학적이고, 일반적으로 무작위의 숫자를 사용한 비결정적인 방법이다. 스타니스와프 울람이 모나코의 유명한 도박의 도시 몬테카를로의 이름을 본따 명명하였다.

* 출처: http://en.wikipedia.org/wiki/Monte_Carlo_method
           http://ko.wikipedia.org/wiki/몬테카를로 방법

Monte Carlo integration


In mathematics, Monte Carlo integration is numerical quadrature using pseudorandom numbers.
That is, Monte Carlo integration methods are algorithms for the approximate evaluation of definite integrals,
usually multidimensional ones.
The usual algorithms evaluate the integrand at a regular grid.
Monte Carlo methods, however, randomly choose the points at which the integrand is evaluated.

Informally, to estimate the area of a domain D, first pick a simple domain d whose area is easily calculated and which contains D. Now pick a sequence of random points that fall within d.
Some fraction of these points will also fall within D. The area of D is then estimated as this fraction multiplied by the area of d.

The traditional Monte Carlo algorithm distributes the evaluation points uniformly over the integration region. Adaptive algorithms such as VEGAS and MISER use importance sampling and stratified sampling techniques to get a better result.

* 출처: http://en.wikipedia.org/wiki/Monte_Carlo_integration

사용자 삽입 이미지

<Monte Carlo - 모나코 공국의 시가지>
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2008/01/27 20:43 2008/01/27 20:43

Leave a comment
[로그인][오픈아이디란?]

Cramer rule - 크래머 공식

크래머 공식(Cramer's rule)은 선형연립방정식의 해를 행렬식으로 표현하는 선형대수학의 정리(theorem)이다.
이름은 가브리엘 크래머(Gabriel Cramer) (1704 - 1752)에게서 유래한다.

방정식이 많은 경우의 실제 해의 계산에 있어서는 그리 유용하지 않지만, 피봇팅(pivoting)이 필요하지 않은 경우 작은 크기의 행렬에서는 가우스 소거법보다 훨씬 효율적이다.
크래머 공식은 연립방정식의 해를 외재적으로 표현하기 때문에 이론의 전개에 유용하다.

연립방정식이 다음과 같은 행렬간의 곱으로 표현될 때.

Ax = c  식에서 정사각행렬(square matrix) A는 역행렬을 갖고, 벡터 x는 (xi)를, 벡터 c는 (ci)를 성분으로
갖는 열벡터이다.

2x2 행렬에서 공식을 적용해 보면, 주어진 연립방정식이 다음과 같을 때,

ax + by = e
cx + dy = f,

이 식은



로 쓸 수 있으며, 공식을 적용하면,

    
이 된다.

출처: 위키사전(크래머 공식)
참고자료: http://www.math.gatech.edu/~bourbaki/math2601/Web-notes/9.pdf

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2007/11/10 01:20 2007/11/10 01:20

Leave a comment
[로그인][오픈아이디란?]

Karnaugh map - 카노 맵

사용자 삽입 이미지
The Karnaugh map, also known as a Veitch diagram (K-map or KV-map for short), is a tool to facilitate management of Boolean algebraic expressions. A Karnaugh map is unique in that only one variable changes value between squares, in other words, the rows and columns are ordered according to the principles of Gray code.

Usage in boolean logic
Normally, extensive calculations are required to obtain the minimal expression of a Boolean function, but one can use a Karnaugh map instead.

* Problem solving uses
  - Karnaugh maps make use of the human brain's excellent pattern-matching capability to decide which terms should be combined to get the simplest expression.
  - K-maps permit the rapid identification and elimination of potential race hazards, something that boolean equations alone cannot do.
  - A Karnaugh map is an excellent aid for simplification of up to six variables, but with more variables it becomes hard even for our brain to discern optimal patterns.
  - For problems involving more than six variables, solving the boolean expressions is more preferred than the Karnaugh map.
Karnaugh maps also help teach about Boolean functions and minimization.

Properties

A mapping of minterms on a Karnaugh mapA Karnaugh map may have any number of variables, but usually works best when there are only a few - between 2 and 6 for example. Each variable contributes two possibilities to each possibility of every other variable in the system. Karnaugh maps are organized so that all the possibilities of the system are arranged in a grid form and between two adjacent boxes only one variable can change value. This is what allows it to reduce hazards.

When using a Karnaugh map to derive a minimized function, one "covers" the ones on the map by rectangular "coverings" that contain a number of boxes equal to a power of 2 (for example, 4 boxes in a line, 4 boxes in a square, 8 boxes in a rectangle, etc). Once a person has covered the ones, a term of a sum of products is produced by finding the variables that do not change throughout the entire covering, and taking a 1 to mean that variable and a 0 as the complement of that variable. Doing this for every covering gives you a matching function.

One can also use zeros to derive a minimized function. The procedure is identical to the procedure for ones except that each term is a term in a product of sums - and a 1 means the complement of the variable while 0 means the variable non-complemented.

Each square in a Karnaugh map corresponds to a minterm (and maxterm). The picture to the right shows the location of each minterm on the map.

Map
The input variables can be combined in 16 different ways, so our Karnaugh map has to have 16 positions. The most convenient way to arrange this is in a 4x4 grid.

사용자 삽입 이미지
K-map showing minterms and boxes covering the desired mintermsThe binary digits in the map represent the function's output for any given combination of inputs. We write 0 in the upper leftmost corner of the map because f = 0 when A = 0, B = 0, C = 0, D = 0. Similarly we mark the bottom right corner as 1 because A = 1, B = 0, C = 1, D = 0 gives f = 1. Note that the values are ordered in a Gray code, so that precisely one variable flips between any pair of adjacent cells.

After the Karnaugh map has been constructed our next task is to find the minimal terms to use in the final expression. These terms are found by encircling groups of 1's in the map. The encirclings must be rectangular and must have an area that is a power of two (i.e. 1, 2, 4, 8, …). The rectangles should be as large as possible without containing any 0's. The optimal encirclings in this map are marked by the green, red and blue lines.

For each of these encirclings we find those variables that have the same state in each of the fields in the encircling. For the first encircling (the red one) we find that:

  - The variable A maintains the same state (1) in the whole encircling, therefore it should be included in the term for the red encircling.
  - Variable B does not maintain the same state (it shifts from 1 to 0), and should therefore be excluded.
  - C does not change: it is always 0.
  - D changes.
Thus the first term in the Boolean expression is AC'.

For the green encircling we see that A and B maintain the same state, but C and D change. B is 0 and has to be negated before it can be included. Thus the second term is AB'.

In the same way, the blue rectangle gives the term  BCD' and so the whole expression is: AC' + AB' + BCD'.

출처: 위키사전

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2007/10/26 01:13 2007/10/26 01:13

Leave a comment
[로그인][오픈아이디란?]

Logic Gate - 논리 회로

논리 회로는 불 대수(논리 연산)를 실시하는 회로 또는 디지탈 신호를 기억하는 회로 혹은 두가지 기능을 가지는 디지털 회로이다.

A logic gate takes one or more logic-level inputs and produces a single logic-level output. Because the output is also a logic level, an output of one logic gate can connect to the input of one or more other logic gates.

In electronic logic, a logic level is represented by a certain voltage (which depends on the type of electronic logic in use). Each logic gate requires power so that it can source and sink currents to achieve the correct output voltage. In logic circuit diagrams the power is not shown, but in a full electronic schematic, power connections are required. There are 7 positive logic gates and each gate has two laws or rules.

사용자 삽입 이미지

논리 회로의 설계
논리 회로의 설계는 논리식이나 진리표가 사용된다.
좀더 회로도적인 표기 수단으로 MIL 기호 등 논리 소자
기호가 사용되었다.

1960년대에 등장한 표준 논리 IC (TI의 7400 시리즈)에
의하여 아날로그 회로 설계와 논리 설계를 분리하여
단순하게 구현이 가능하게 되었다.

작은 규모에서는 논리 소자 기호로 설계가 가능하지만,
큰 규모가되면 힘들어 진다. 그렇기 때문에 1990년대부터
대규모 회로 설계에는 하드웨어 기술 언어가 사용되고
있다. 그리고 집적 회로 기술의 발전에 대응할 수 있도록
다양한 모델에 적용이 가능한 독립적인 모델(동작 기술)을
사용하여 설계한다.

1990년대 후반에는 개발품의 경우 논리 회로 프로그램을 이용하여 PLD, CPLD, FPGA을 사용하였다. 양산품이나 고성능이 요구될 경우 ASIC를 사용하기도 했다.

Logic gates and hardware
NAND and NOR logic gates are the two pillars of logic, in that all other types of Boolean logic gates (i.e., AND, OR, NOT, XOR, XNOR) can be created from a suitable network of just NAND or just NOR gate(s). They can be built from relays or transistors, or any other technology that can create an inverter and a two-input AND or OR gate. Hence the NAND and NOR gates are called the universal gates.

DeMorgan equivalent symbols
By use of De Morgan's theorem, an AND gate can be turned into an OR gate by inverting the sense of the logic at its inputs and outputs. This leads to a separate set of symbols with inverted inputs and the opposite core symbol. These symbols can make circuit diagrams for circuits using active low signals much clearer and help to show accidental connection of an active high output to an active low input or vice-versa.

Storage of bits
Related to the concept of logic gates (and also built from them) is the idea of storing a bit of information. The gates discussed up to here cannot store a value: when the inputs change, the outputs immediately react. It is possible to make a storage element either through a capacitor (which stores charge due to its physical properties) or by feedback. Connecting the output of a gate to the input causes it to be put through the logic again, and choosing the feedback correctly allows it to be preserved or modified through the use of other inputs. A set of gates arranged in this fashion is known as a "latch", and more complicated designs that utilise clocks (signals that oscillate with a known period) and change only on the rising edge are called edge-triggered "flip-flops". The combination of multiple flip-flops in parallel, to store a multiple-bit value, is known as a register. When using any of these gate setups the overall system has memory; it is then called a sequential system since its output can be influenced by its previous state(s).

These registers or capacitor-based circuits are known as computer memory. They vary in performance, based on factors of speed, complexity, and reliability of storage, and many different types of designs are used based on the application.

출처: 위키사전(logic gate), 위키사전(논리회로)

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2007/10/19 00:09 2007/10/19 00:09

Leave a comment
[로그인][오픈아이디란?]

Boolean algebra - 불 대수

불 대수(영어: Boolean algebra)는 조지 불이 19세기 중반에 고안한 논리 수학의 대표적 형태이다.
불 격자(Boolean lattice)나 불 속(束)이라고도 한다. 불 대수의 연구는 대수적 구조로서 속의 이론을 발전시키는
하나의 계기가 되었다. 수학적인 엄밀한 정의는 다음에 기술한다.

디지털 회로 설계에서는 필수적인 지식이다. 디지털 회로는 전압의 H(High), L(Low)만으로 정보를 연산하기
때문에, 기본적으로 조합 회로는 불 대수에 있는 논리식을 써서 나타낼 수 있다. (하지만, 플립 플랍 등 순차 회로는
단순하게 하나의 논리식으로 나타낼 수 없다.)

불 대수의 기본 연산(논리 연산)은 논리 부정 ¬(not), 논리합 ∨(or), 논리곱 ∧(and)로 출발된다. 이러한 연산 합성
으로부터 만들어지는 연산 중 대표적인 것으로 배타적 논리합(xor)이 있다.

불 대수를 불 격자(불 속)라고 부르는 이유는, ∨, ∧에 대해서 분배 가능한 격자가 되기 때문이다. 즉, 다음 법칙이
성립한다:

   1. 멱등 법칙(idempotence): x ∧ x = x ∨ x = x,
   2. 교환 법칙(commutativity): x ∧ y = y ∧ x, x ∨ y = y ∨ x,
   3. 결합 법칙(associativity): (x ∧ y)∧ z = x ∧(y ∧ z), (x ∨ y)∨ z = x ∨(y ∨ z),
   4. 흡수 법칙(absorption): (x ∧ y)∨ x = x, (x ∨ y)∧ x = x,
   5. 분배 법칙(distributivity): (x ∨ y)∧ z = (x ∧ z)∨(y ∧ z), (x ∧ y)∨ z = (x ∨ z)∧(y ∨ z).

    또한 불 대수에서는 다음 조건이 성립한다:
    참을 1 거짓을 0으로 하여, 각 x 항과 반대되는 ¬x 항이 존재할 때, (x ∧ ¬x = 0), (x ∨ ¬x = 1)을 만족한다.
    수학에서는 이러한 조건을 공리(公理, axiom)라 하여, 그것을 만족하는 집합을 불 격자(속)나 불 대수라고 한다.

======================================================================

Boolean algebra (or Boolean logic) is a logical calculus of truth values, developed by George Boole. It resembles the algebra of real numbers as taught in high school, but with the numeric operations of multiplication xy, addition x + y, and negation −x replaced by the logical operations of conjunction x∧y, disjunction x∨y, and complement ¬x. The Boolean operations are these and all other operations obtainable from them by composition; equivalently, the finitary operations on the set {0,1}. The laws of Boolean algebra can be defined axiomatically as the equations derivable from a sufficient finite subset of those laws, such as the equations axiomatizing a complemented distributive lattice or a Boolean ring, or semantically as those equations identically true or valid over {0,1}. The axiomatic approach is sound and complete in the sense that it proves respectively neither more nor fewer laws than the validity-based semantic approach.

Applications

Boolean algebra as the calculus of two values is fundamental to digital logic, computer programming, and mathematical logic, and is also used in other areas of mathematics such as set theory and statistics.

Digital logic codes its symbols in various ways: as voltages on wires in high-speed circuits and capacitive storage devices, as orientations of a magnetic domain in ferromagnetic storage devices, as holes in punched cards or paper tape, and so on. Now it is possible to code more than two symbols in any given medium. For example one might use respectively 0, 1, 2, and 3 volts to code a four-symbol alphabet on a wire, or holes of different sizes in a punched card. In practice however the tight constraints of high speed, small size, and low power combine to make noise a major factor. This makes it hard to distinguish between symbols when there are many of them at a single site. Rather than attempting to distinguish between four voltages on one wire, digital designers have settled on two voltages per wire, high and low. To obtain four symbols one uses two wires, and so on.

Programmers programming in machine code, assembly language, and other programming languages that expose the low-level digital structure of the data registers operate on whatever symbols were chosen for the hardware, invariably bit vectors in modern computers for the above reasons. Such languages support both the numeric operations of addition, multiplication, etc. performed on words interpreted as integers, as well as the logical operations of disjunction, conjunction, etc. performed bit-wise on words interpreted as bit vectors. Programmers therefore have the option of working in and applying the laws of either numeric algebra or Boolean algebra as needed. A core differentiating feature is carry propagation with the former but not the latter.

Other areas where two values is a good choice are the law and mathematics. In everyday relaxed conversation, nuanced or complex answers such as "maybe" or "only on the weekend" are acceptable. In more focused situations such as a court of law or theorem-based mathematics however it is deemed advantageous to frame questions so as to admit a simple yes-or-no answer---is the defendant guilty or not guilty, is the proposition true or false---and to disallow any other answer. However much of a straitjacket this might prove in practice for the respondent, the principle of the simple yes-no question has become a central feature of both judicial and mathematical logic, making two-valued logic deserving of organization and study in its own right.

A central concept of set theory is membership. Now an organization may permit multiple degrees of membership, such as novice, associate, and full. With sets however an element is either in or out. The candidates for membership in a set work just like the wires in a digital computer: each candidate is either a member or a nonmember, just as each wire is either high or low.

Algebra being a fundamental tool in any area amenable to mathematical treatment, these considerations combine to make the algebra of two values of fundamental importance to computer hardware, mathematical logic, and set theory. It has not featured so prominently in law however, perhaps because mathematical methods in general have not been applied as vigorously there as in these other application areas.

Basic operations

사용자 삽입 이미지

After values, the next ingredient of any algebraic system is its operations. Whereas elementary algebra is based on numeric operations multiplication xy, addition x + y, and negation −x, Boolean algebra is customarily based on logical counterparts to those operations, namely conjunction x∧y (AND), disjunction x∨y (OR), and complement or negation ¬x (NOT).

Conjunction is the closest of these three to its numerical counterpart, in fact on 0 and 1 it is multiplication. As a logical operation the conjunction of two propositions is true when both propositions are true, and otherwise is false. The first column of Figure 1 below tabulates the values of x∧y for the four possible valuations for x and y; such a tabulation is traditionally called a truth table.

Disjunction, in the second column of the figures, works almost like addition, with one exception: the disjunction of 1 and 1 is neither 2 nor 0 but 1. Thus the disjunction of two propositions is false when both propositions are false, and otherwise is true. This is just the definition of conjunction with true and false interchanged everywhere; because of this we say that disjunction is the dual of conjunction.

Logical negation however does not work like numerical negation at all. Instead it corresponds to incrementation: ¬x = x+1 mod 2. Yet it shares in common with numerical negation the property that applying it twice returns the original value: ¬¬x = x, just as −(−x) = x. An operation with this property is called an involution. The set {0,1} has two permutations, both involutary, namely the identity, no movement, corresponding to numerical negation mod 2 (since +1 = −1 mod 2), and SWAP, corresponding to logical negation. Using negation we can formalize the notion that conjunction is dual to disjunction via De Morgan's laws, ¬(x∧y) = ¬x ∨ ¬y and ¬(x∨y) = ¬x ∧ ¬y. These can also be construed as definitions of conjunction in terms of disjunction and vice versa: x∧y = ¬(¬x ∨ ¬y) and x∨y = ¬(¬x ∧ ¬y).

Various representations of Boolean operationsFigure 2 shows the symbols used in digital electronics for conjunction and disjunction; the input ports are on the left and the signals flow through to the output port on the right. Inverters negating the input signals on the way in, or the output signals on the way out, are represented as circles on the port to be inverted.

출처: 위키사전(Boolean algebra), 위키사전(불대수)

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2007/10/18 23:20 2007/10/18 23:20

Leave a comment
[로그인][오픈아이디란?]

Hamming code - 해밍 코드

해밍 부호(해밍符號, Hamming code)는 오류 정정 부호의 일종으로 리처드 해밍이 제안했다.
보통 해밍 부호라고 할 때는 해밍 (7,4) 부호를 가리킨다.
해밍 부호는 1비트 오류만 일어날 때는 오류를 정정할 수 있고, 2비트까지의 오류를 검출할 수 있다.

역사

해밍은 1940년대 벨 연구소에서 Bell Model V라는 컴퓨터를 이용해서 작업을 했다.
이 컴퓨터는 확실히 여러 면에서 오늘날의 컴퓨터와는 거리가 멀었다.
릴레이 회로로 만들어졌으며 입력도 천공카드를 이용했다. 천공카드를 이용했으므로
컴퓨터에 입력되는 자료들은 필연적으로 언제나 오류의 가능성이 있었다.
주중에는 컴퓨터의 관리자(operator)가 있으면서 입력에 오류가 발생했다는 경고등이 켜지면
직접 수정할 수 있었으나, 관리자가 없는 주말에는 에러가 발생한 채 프로그램이 실행되지 않고
다음 작업으로 넘어가기 일쑤였다.

해밍은 이런 문제로 인해 여러 차례 고생을 한 후에, 이 문제를 근본적으로 해결하기 위해 노력했다.
그후 몇 년 동안 오류를 수정하는 방법에 대해서 연구하면서 이와 관련된 여러가지의 효율적인 알고리즘을
만들어냈고 마침내 1950년에 해밍 부호를 발표했다. 해밍 부호는 오늘날에도 사용되고 있다.

패리티 비트

패리티 비트 (parity bit)는 주어진 비트열에 1이 짝수번 나오는지 홀수번 나오는지 추가적인 정보를
입력하는 방식
이다.
예를 들어, 어떤 비트열에 1이 홀수번 나오면 패리티 비트가 1이고 짝수면 0으로 정했다고 하자.
'1101011'이라는 비트열에는 1이 3번 나오므로 패리티 비트가 1이 되어서 최종적으로 11010111'이라고
쓰는 방식이다.

패리티 비트는 여러가지 단점이 있다.

짝수 개의 오류가 발생하면 하면 오류를 검출하지 못하는 경우가 생길 수 있다. 예를 들어서 '0000'을 보내려고
패리티 비트 '0'을 추가해서 '00000'을 전송했는데 오류가 발생해서 '01010'이 전송되었다고 하자.
받는 쪽에서는 1이 두번 나오므로 패리티 비트가 제대로 0으로 설정되었다고 생각할 것이고, 결과적으로 오류를
검출하지 못하게 된다.
전송된 비트열에 오류가 발생했다는 것을 알았다 하더라도 오류가 발생하기 전의 제대로 된 내용을 알 수 없다.
예를 들어서 '001000'이라는 비트열을 받았다고 하자. 이 비트열에서 1이 한 번 나오기 때문에 전송중에 오류가
생겼다는 것을 알 수 있지만, 원래 비트열은 알 수가 없다. 따라서 결과적으로 데이터를 다시 전송해야 하는
문제가 있다. 데이터의 전송 과정에서 오류가 발생하므로 패리티 비트 자체에도 오류가 생길 수 있다.


해밍 부호를 만드는 방법

2의 거듭제곱번째 위치에 있는 비트들은 패리티 비트로 사용한다. (1, 2, 4, 8, 16, 32, 64, …번째 비트)
나머지 비트에는 부호화될 데이터가 들어 간다. (3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, …번째 비트)

 … 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 (굵게 표시한 부분이 패리티 비트가 들어가는 곳)
                 P4           P3   P2  P1

     P1의 패리티 값 : 1, 3, 5, 7, 9, 11, … 의 값들의 패리티 검사를 통해 정함
     P2의 패리티 값 : 2, 3, 6, 7, 10, 11, … 의 값들의 패리티 검사를 통해 정함
     P3의 패리티 값 : 4, 5, 6, 7, 12, 13, 14, 15, … 의 값들의 패리티 검사를 통해 정함
     P4의 패리티 값 : 8, 9, 10, 11, 12, 13, 14, 15, 24, 25, …  의 값들의 패리티 검사를 통해 정함

     예> 7의 이진수 값은: 0 1 1 1   - 해밍코드 - >   0 1 1 P3 1 P2 P1 (even parity이용)
                   P1 1 1 0 : P1 = 0          P2 1 1 0 : P2 = 0          P3 1 1 0 : P3 = 0
                      결과 값 : 0 1 1 0 1 0 0

     또 다른 방법은 1의 값이 있는 위치를 각각 구한 다음 그 값들을 세로로 XOR 연산 하는 방법이 있다.
     위의 예를 이용해서 계산해보면, 1이 있는 위치가 6번째 자리, 5번째 자리, 3번째 자리이다.

                   6 : 1 1 0
                   5 : 1 0 1
                   3 : 0 1 1
            parity : 0 0 0   <-   이 값을 P3 P2 P1에 넣어주면 된다.

     오류 위치 찾는 방법은 위의 parity 값을 찾는 방법과 비슷하다. 오류를 찾으려고 하는 값의 1의 위치들을
     세로로 각각 xor 연산해서 나온 값이 오류 비트가 있는 위치이다.

     7의 해밍코드 값은 0110100 인 것을 알고 있다. 그런데 오류가 하나 생겨서 0100100이 수신됬다고 하자.
     이 값에 오류가 있는지 알아보려면 일단 1의 위치를 알아본다. 3, 6번째에 1이 있다.

                   6 : 1 1 0
                   3 : 0 1 1
            check : 1 0 1   <-   이 값이 오류 위치를 말한다. 10진수화 하면 5번째 비트에 오류가 있다.
                                        원래 값과 비교해보면 5번째 비트가 1에서 0으로 오류가 있는 것을 확인할 수 있다.

출처: 위키백과(해밍부호), 위키백과(Hamming code)

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2007/10/15 17:03 2007/10/15 17:03

Leave a comment
[로그인][오픈아이디란?]

진성반도체

진성반도체란 불순물을 첨가하지 않은 순수한 반도체를 가르킨다. 영국말 intrinsic semiconductor 로부터
I형 반도체라고도 한다.

  특징

  캐리어 밀도
도핑된 경우는 도펀트의 밀도로 정재지는 캐리어밀도이지만, 진성 반도체는 불순물 밀도가 아니고 재질자체가
캐리어 밀도를 결정한다. 이 캐리어 밀도를 진성 캐리어 밀도 (ni)라고 한다.
이 진성 캐리어 밀도는 매우 낮은 값 (~1010 /cm3)이다. 이것은 일반적인 도핑으로 얻을 수 있는 캐리어 밀도보다
약 10 자리수만큼 낮은값이기 때문에 일반적인 반도체를 사용하는 경우는 도핑을 하는 경우가 많다.

  페르미 준위
도핑된 경우에 페르미준위는 도너 준위나 억셉터 준위 근처에 존재하지만, 진성 반도체는 띠간격의 띠 중앙에 위치한다.

  캐리어 이동도
진성 반도체는 불순물의 도핑이 되지 않았기 때문에 캐리어는 이온화 불순물 산란의 영향을 받지 않는다.
그렇기에 도핑되었을 때와 비교해서 매우 빠른 이동도를 나타낸다.
하지만 이전에 말했듯이 진성 반도체는 캐리어 밀도가 매우 낮기때문에 용도또한 한정된다.
탄소구조에 의한 이차원 전자 가스 를 이용한 반도체소자 (예시 HEMT)가 있다.

  도핑
진성 반도체는 캐리어 밀도가 낮기때문에 일반적으로는 진성 반도체에 불순물을 도핑한 불순물 반도체 (외인성 반도체)가 사용된다. 불순물 반도체는 도너나 억셉터의 열여기에 의한 캐리어가 전도에 기여한다.
캐리어가 홀 (전공)인 P형 반도체와 캐리어가 전자인 N형 반도체로 크게 구별된다.
캐리어의 종류는 불순물의 최외각 전자의 수에 의하여 결정되며 최외각 전자가 4보다 크면 N형 반도체,
최외각 전자가 4보다 작으면 P형 반도체가 된다.
실리콘에서 인, 비소를 도핑했을 때는 N형 반도체, 붕소를 도핑했을 때는 P형 반도체가 된다.

=======================================================================

외인성 반도체

불순물반도체는 반도체의 한 종류이다. 외인성 반도체 (영어: extrinsic semiconductor)라고도 한다.
순수한 진성반도체에 불순물 (도펀트)를 소량첨가 (도핑)한 것이다. 도핑하는 원소에 의하여 캐리어가
홀 (정공)인 P형 반도체, 캐리어가 전자인 N형 반도체를 얻을 수 있다.

캐리어의 종류는 불순물 원소의 최외각전자수에 의존적이며, 최외각전자가 4보다 클 경우는 N형 반도체,
최외각전자가 4보다 작을 경우는 P형 반도체가 된다.
반도체의 한종류인 규소를 예로 들면, 비소, 인의 경우에는 N형 반도체, 붕소의 경우에는 P형 반도체가 된다.

출처: 위키사전(진성반도체), 위키사전(외인성 반도체)

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2007/10/06 16:10 2007/10/06 16:10

Leave a comment
[로그인][오픈아이디란?]

사용자 삽입 이미지
In mathematics, the spherical coordinate system is a coordinate system for representing geometric figures in three dimensions using three coordinates: the radial distance of a point from a fixed origin, the zenith angle from the positive z-axis, and the azimuth angle from the positive x-axis.

Definition
The three coordinates (ρ, θ, φ) are defined as:

   * ρ ≥ 0 is the distance from the origin to a given point P.
   * 0 ≤ θ ≤ 360° is the angle between the positive x-axis and the line from the origin to the P projected onto the xy-plane.
   * 0 ≤ φ ≤ 180° is the angle between the positive z-axis and the line formed between the origin and P.

θ is referred to as the azimuth, while φ is referred to as the zenith, colatitude or polar angle.
θ and φ and lose significance when ρ = 0 and θ loses significance when sin(φ) = 0 (at φ = 0 and φ = 180°).

To plot a point from its spherical coordinates, go ρ units from the origin along the positive z-axis, rotate φ about the y-axis in the direction of the positive x-axis and rotate θ about the z-axis in the direction of the positive y-axis.

Coordinate system conversions
As the spherical coordinate system is only one of many three-dimensional coordinate systems, there exist equations for converting coordinates between the spherical coordinate system and others.

   Cartesian coordinate system
The three spherical coordinates are obtained from Cartesian coordinates by:
    
Note that the arctangent must be defined suitably so as to take account of the correct quadrant of y / x. The atan2 or equivalent function accomplishes this for computational purposes.

Conversely, Cartesian coordinates may be retrieved from spherical coordinates by:
     

   Cylindrical coordinate system

The cylindrical coordinate system is a three-dimensional extrusion of the polar coordinate system, with an h coordinate to describe a point's height above or below the xy-plane. The full coordinate tuple is (r, θ, h).

Cylindrical coordinates may be converted into spherical coordinates by:
    

Spherical coordinates may be converted into cylindrical coordinates by:
    

출처: 위키백과

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2007/09/23 20:31 2007/09/23 20:31

Leave a comment
[로그인][오픈아이디란?]

이진화 십진법(Binary-coded decimal, BCD)은 십진법 숫자를 이진법으로 표현된 비트들의 연속으로 표현하는 방법으로, 하나의 십진법 자리가 네 개의 이진법 자리에 곧바로 대응하므로 변환이나 역변환이 쉽다는 이점을 갖고 있다. 그러나 쓰이지 않고 버려지는 패턴이 많고 연산을 위해서 더 많은 처리와 회로가 필요하다는 단점이 있다.

이진화 십진법은 특히 숫자의 십진 출력을 요하는 전자 회로와 마이크로프로세서에서 많이 사용되는데, 이는 순수 이진법으로 표현된 숫자를 십진법으로 출력하기 위해서는 복잡한 나눗셈 회로가 필요하기 때문이다. 이진화 십진법을 사용할 경우 각 자리 별로 하나씩 간단한 변환 회로를 만들어서 7세그먼트 표시 장치 등에 바로 연결할 수 있기 때문에 전체적인 구현을 간편하게 할 수 있다. 이 때문에 일부 프로세서는 아예 BCD로 덧셈과 뺄셈 등의 간단한 연산을 할 수 있는 명령을 갖추고 있다.

규칙
이진화 십진법에서 십진법의 각 자리는 다음 표에 따라 네 개의 비트로 변환된다. 역변환도 동일하다.

  십진법    0     1      2     3      4     5      6     7     8      9
  BCD    0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

따라서 십진법 숫자 729는 이진화 십진법으로 0111 0010 1001로 표현된다.

많은 컴퓨터가 8비트를 묶어서 1바이트로 처리하기 때문에, 이런 환경에서 이진화 십진법을 저장하는 방법은 두 가지가 있을 수 있다.

  * 한 바이트에 한 자리만을 저장하고, 남는 네 자리를 0000이나 1111(EBCDIC의 경우),
    또는 0011(ASCII의 경우) 등으로 채운다.
  * 한 바이트에 두 자리를 저장한다.


In computing and electronic systems, Binary-coded decimal (BCD) is an encoding for decimal numbers in which each digit is represented by its own binary sequence. Its main virtue is that it allows easy conversion to decimal digits for printing or display and faster decimal calculations. Its drawbacks are the increased complexity of circuits needed to implement mathematical operations and a relatively inefficient encoding – 6 wasted patterns per digit. Even though the importance of BCD has diminished [citation needed], it is still widely used in financial, commercial, and industrial applications.

In BCD, a digit is usually represented by four bits which, in general, represent the values/digits/characters 0-9. Other bit combinations are sometimes used for sign or other indications.

Basics
To BCD-encode a decimal number using the common encoding, each decimal digit is stored in a four-bit nibble.

   Decimal:    0      1      2      3      4       5       6      7       8      9
   BCD:     0000  0001  0010  0011  0100  0101  0110  0111  1000  1001

Thus, the BCD encoding for the number 127 would be: 0001 0010 0111

Since most computers store data in eight-bit bytes, there are two common ways of storing four-bit BCD digits in those bytes:

  * each digit is stored in one byte, and the other four bits are then set to all zeros, all ones
    (as in the EBCDIC code), or to 0011 (as in the ASCII code)
  * two digits are stored in each byte.

Unlike binary encoded numbers, BCD encoded numbers can easily be displayed by mapping each of the nibbles to a different character. Converting a binary encoded number to decimal for display is much harder involving integer multiplication or divide operations. The BIOS in many PCs keeps the date and time in BCD format, probably for historical reasons (it avoided the need for binary to ASCII conversion).

출처: 위키사전(영문) / 위키사전(한글)

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2007/09/15 00:22 2007/09/15 00:22

Leave a comment
[로그인][오픈아이디란?]

In mathematics, negative numbers in any base are represented in the usual way, by prefixing them with a "−" sign. However, on a computer, there are various ways of representing a number's sign. This article deals with four methods of extending the binary numeral system to represent signed numbers: sign-and-magnitude, ones' complement, two's complement, and excess-N.

For most purposes, modern computers typically use the two's-complement representation, but other representations are used in some circumstances.

Sign-and-magnitude

사용자 삽입 이미지
One may first approach this problem of representing a number's sign by allocating one sign bit to represent the sign: set that bit (often the most significant bit) to 0 for a positive number, and set to 1 for a negative number. The remaining bits in the number indicate the magnitude (or absolute value). Hence in a byte with only 7 bits (apart from the sign bit), the magnitude can range from 0000000 (0) to 1111111 (127). Thus you can represent numbers from −12710 to +12710 once you add the sign bit (the eighth bit). A consequence of this representation is that there are two ways to represent 0, 00000000 (0) and 10000000 (−0). Decimal −43 encoded in an eight-bit byte this way is 10101011.

This approach is directly comparable to the common way of showing a sign (placing a "+" or "−" next to the number's magnitude). Some early binary computers (e.g. IBM 7090) used this representation, perhaps because of its natural relation to common usage. (Many decimal computers also used sign-and-magnitude.)

Ones' complement

사용자 삽입 이미지
Alternatively, a system known as ones' complement can be used to represent negative numbers. The ones' complement form of a negative binary number is the bitwise NOT applied to it — the complement of its positive counterpart. Like sign-and-magnitude representation, ones' complement has two representations of 0: 00000000 (+0) and 11111111 (−0).

As an example, the ones' complement form of 00101011 (43) becomes 11010100 (−43). The range of signed numbers using ones' complement in a conventional eight-bit byte is −12710 to +12710.

To add two numbers represented in this system, one does a conventional binary addition, but it is then necessary to add any resulting carry back into the resulting sum. To see why this is necessary, consider the following example showing the case of the addition of −1 (11111110) to +2 (00000010).

In the previous example, the binary addition alone gives 00000000—not the correct answer! Only when the carry is added back in does the correct result (00000001) appear.

This numeric representation system was common in older computers; the PDP-1 and UNIVAC 1100/2200 series, among many others, used ones'-complement arithmetic.

(A remark on terminology: The system is referred to as "ones' complement" because the negation of x is formed by subtracting x from a long string of ones. Two's complement arithmetic, on the other hand, forms the negation of x by subtracting x from a single large power of two.)

The IPv4 header checksum uses ones' complement arithmetic, here even on two's complement machines the inconvenience of having to add back a carry is a desirable error-checking property, because "it is equally sensitive to errors in all bit positions". In the UDP protocol one of the two representations of 0 provided by the ones' complement arithmetic is used for indicating that the optional checksum feature has been omitted (all 0s), whereas the other (all 1s) indicates a checksumming result of 0.

Note that the ones' complement representation of a negative number can be obtained from the sign-magnitude representation merely by bitwise complementing the magnitude.

사용자 삽입 이미지
Two's complement
(http://en.wikipedia.org/wiki/Twos_complement)
The problems of multiple representations of 0 and the need for the end-around carry are circumvented by a system called two's complement. In two's complement, negative numbers are represented by the bit pattern which is one greater (in an unsigned sense) than the ones' complement of the positive value.

In two's-complement, there is only one zero (00000000). Negating a number (whether negative or positive) is done by inverting all the bits and then adding 1 to that result. Addition of a pair of two's-complement integers is the same as addition of a pair of unsigned numbers (except for detection of overflow, if that is done). For instance, a two's-complement addition of 127 and −128 gives the same binary bit pattern as an unsigned addition of 127 and 128, as can be seen from the above table.

출처: 위키사전

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2007/09/15 00:10 2007/09/15 00:10

Leave a comment
[로그인][오픈아이디란?]

한글
P채널과 N채널의 MOSFET을 상호 보완하여 연결한 집적 회로의 구조이다. TTL 논리 소자와 비교해서 소비전력이 적은 논리 회로를 구현할수 있고, 집적도를 향상시키는것이 가능하다.

MOSFET의 동작 영역에서 직류 전달 특성은 선형 영역에서 출력 전압이 입력 전압과 거의 같고 포화 영역에서 출력 전압은 게이트 전압에서 「문턱 전압」을 뺀 값이 된다. P-MOSFET가 포화 영역일때 N-MOSFET는 선형 영역이고, N-MOSFET가 포화 영역일때 P-MOSFET는 선형 영역이다. 시모스의 동작 영역의 대부분은 선형 영역이다. 엄밀하게 양자의 「문턱 전압」이 겹치는 영역이 존재기 때문에 사용하지 않는 입력 단자는 「문턱 전압」영역에 들어가지 않도록 풀업 또는 풀다운에 연결해 주는것이 좋다.

시모스 구조로 하면 게이트 전압에 입력되는 제어 펄스를 "1"에서 "0"으로 변경했을 경우에 노이즈 없이 이전의 출력을 할수 있고, "0"에서 "1"로 변경했을 경우 역시 노이즈 없이 입력 신호를 출력할 수 있다.

시모스 구조의 논리 회로는 전원 전압을 낮게 하면 소비 전력이 적은 반면 전달 지연 시간이 커지는 특성을 가지고 있다. 제조 프로세서의 개선에 의하여 저전압 동작과 고속 동작을 할 수 있게 되었다.

1990년대가 되면서 반도체 메모리나 마이크로프로세서의 논리 IC는 대부분 시모스 구조가 되었으며 , 소규모 전원 회로, 아날로그-디지털 변환회로, 디지털-아날로그 변환회로등을 포함되어서 제작하기 시작하였다.

영문
Complementary metal–oxide–semiconductor (CMOS) ("see-moss", IPA: ['si.mɜs]), is a major class of integrated circuits. CMOS technology is used in chips such as microprocessors, microcontrollers, static RAM, and other digital logic circuits. CMOS technology is also used for a wide variety of analog circuits such as image sensors, data converters, and highly integrated transceivers for many types of communication.

CMOS is also sometimes explained as complementary-symmetry metal–oxide–semiconductor. The words "complementary-symmetry" refer to the fact that the typical digital design style with CMOS uses complementary and symmetrical pairs of p-type and n-type MOSFETs for logic functions.

Two important characteristics of CMOS devices are high noise immunity and low static power supply drain. Significant power is only drawn when its transistors are switching between on and off states; consequently, CMOS devices do not produce as much heat as other forms of logic such as TTL (transistor-transistor logic). CMOS also allows a high density of logic functions on a chip.

The triple compound "metal–oxide–semiconductor" is a reference to the nature of the physical structure of early (and interestingly now, the very latest) field-effect transistors, having a metal gate electrode placed on top of an oxide insulator, which in turn is on top of a semiconductor material. Instead of metal, current gate electrodes (including those up to the 65 nanometer technology node) are almost always made from a different material, polysilicon, but the terms MOS and CMOS nevertheless continue to be used for the modern descendants of the original process. (See also MOSFET.) Metal gates have made a comeback with the advent of high-k dielectric materials in the CMOS transistor as announced by IBM and Intel for the 45 nanometer node and beyond.

The combination of MEMS sensors with digital signal processors on one single CMOS chip is sometimes known an CMOSens.

출처: 위키사전(영문) / 위키사전(한글)

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2007/09/15 00:00 2007/09/15 00:00

Leave a comment
[로그인][오픈아이디란?]

사용자 삽입 이미지
The cylindrical coordinate system is a three-dimensional coordinate system which essentially extends circular polar coordinates by adding a third coordinate (usually denoted h) which measures the height of a point above the plane.

A point P is given as (r,θ,h). In terms of the Cartesian coordinate system:

  * r is the distance from O to P', the orthogonal projection of the point P onto the XY plane. This is the same as the distance of P to the z-axis.

  * θ is the angle between the positive x-axis and the line OP', measured counterclockwise.

  * h is the same as z.

  * Thus, the conversion function f from cylindrical coordinates to Cartesian coordinates is f(x,y,z) = (rcosθ,rsinθ,h).
For use in physical sciences and technology, the recommended international standard notation is ρ, φ, z (ISO 31-11).

Some mathematicians indeed use (r,θ,z).

Cylindrical coordinates are useful in analyzing surfaces that are symmetrical about an axis, with the z-axis chosen as the axis of symmetry. For example, the infinitely long circular cylinder that has the Cartesian equation x2 + y2 = c2 has the very simple equation r = c in cylindrical coordinates. Hence the name "cylindrical" coordinates.

Line and volume elements

The line element is dl = dr\,\mathbf{\hat r} + r\,d\theta\,\boldsymbol{\hat\theta} + dz\,\mathbf{\hat z}.

The volume element is dV = r\,dr\,d\theta\,dz.

The gradient is \nabla = \mathbf{\hat r}\frac{\partial}{\partial r} + \boldsymbol{\hat \theta}\frac{1}{r}\frac{\partial}{\partial \theta} + \mathbf{\hat z}\frac{\partial}{\partial z}.

출처: 위키 링크

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2007/09/08 23:48 2007/09/08 23:48

Leave a comment
[로그인][오픈아이디란?]

사용자 삽입 이미지
In mathematics, the Cartesian coordinate system (also called rectangular coordinate system) is used to determine each point uniquely in a plane through two numbers, usually called the x-coordinate and the y-coordinate of the point. To define the coordinates, two perpendicular directed lines (the x-axis or abscissa and the y-axis or ordinate), are specified, as well as the unit length, which is marked off on the two axes (see Figure 1). Cartesian coordinate systems are also used in space (where three coordinates are used) and in higher dimensions.

Using the Cartesian coordinate system, geometric shapes (such as curves) can be described by algebraic equations, namely equations satisfied by the coordinates of the points lying on the shape.

Two-dimensional coordinate system
사용자 삽입 이미지

A Cartesian coordinate system in two dimensions is commonly defined by two axes, at right angles to each other, forming a plane (an xy-plane). The horizontal axis is normally labeled x, and the vertical axis is normally labeled y. In a three dimensional coordinate system, another axis, normally labeled z, is added, providing a third dimension of space measurement. The axes are commonly defined as mutually orthogonal to each other (each at a right angle to the other). (Early systems allowed "oblique" axes, that is, axes that did not meet at right angles, and such systems are occasionally used today, although mostly as theoretical exercises.) All the points in a Cartesian coordinate system taken together form a so-called Cartesian plane. Equations that use the Cartesian coordinate system are called Cartesian equations.

The point of intersection, where the axes meet, is called the origin normally labeled O. The x and y axes define a plane that is referred to as the xy plane. Given each axis, choose a unit length, and mark off each unit along the axis, forming a grid. To specify a particular point on a two dimensional coordinate system, indicate the x unit first (abscissa), followed by the y unit (ordinate) in the form (x,y), an ordered pair.

The choice of letters comes from a convention, to use the latter part of the alphabet to indicate unknown values. In contrast, the first part of the alphabet was used to designate known values.

An example of a point P on the system is indicated in Figure 3, using the coordinate (3,5).

The intersection of the two axes creates four regions, called quadrants, indicated by the Roman numerals I (+,+), II (−,+), III (−,−), and IV (+,−). Conventionally, the quadrants are labeled counter-clockwise starting from the upper right ("northeast") quadrant. In the first quadrant, both coordinates are positive, in the second quadrant x-coordinates are negative and y-coordinates positive, in the third quadrant both coordinates are negative and in the fourth quadrant, x-coordinates are positive and y-coordinates negative (see table below.)

Three-dimensional coordinate system

사용자 삽입 이미지
The three dimensional Cartesian coordinate system provides the three physical dimensions of space — length, width, and height. Figures 4 and 5, show two common ways of representing it. The three Cartesian axes defining the system are perpendicular to each other. The relevant coordinates are of the form (x,y,z). As an example, figure 4 shows two points plotted in a three-dimensional Cartesian coordinate system: P(3,0,5) and Q(−5,−5,7). The axes are depicted in a "world-coordinates" orientation with the z-axis pointing up. The x-, y-, and z-coordinates of a point can also be taken as the distances from the yz-plane, xz-plane, and xy-plane respectively. Figure 5 shows the distances of point P from the planes. The xy-, yz-, and xz-planes divide the three-dimensional space into eight subdivisions known as octants, similar to the quadrants of 2D space. While conventions have been established for the labelling of the four quadrants of the x-y plane, only the first octant of three dimensional space is labelled. It contains all of the points whose x, y, and z coordinates are positive. The z-coordinate is also called applicate.

출처: 위키 링크

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2007/09/08 23:42 2007/09/08 23:42

Leave a comment
[로그인][오픈아이디란?]

Cross product - 벡터 곱

수학에서 외적(外積)은 3차원 공간의 벡터들간의 이항연산의 일종이다.
연산의 결과가 스칼라인 내적(內積)과는 달리 연산의 결과가 벡터이기 때문에 벡터곱(vector product)이라고
불리기도 한다. 외적은 물리학의 각운동량, 로렌츠 힘등의 공식에 등장한다.

정의

두 벡터 ab의 외적은 a x b라 쓰고(수학자들은 a ^ b라고 쓰기도 한다.), 다음과 같이 정의된다.

\mathbf{a} \times \mathbf{b} = \mathbf\hat{n} \left| \mathbf{a} \right| \left| \mathbf{b} \right| \sin \theta

식에서 θ는 ab가 이루는 각을 나타내며, nab에 공통으로 수직인 단위벡터를 나타낸다.

위 정의에서의 문제점은 ab에 공통으로 수직인 방향이 두개라는 점이다. 즉, n이 수직이면, -n도 수직이다.

어느 것을 두 벡터의 외적으로 할 것인가는 벡터공간의 방향성(orientation)에 따라 달라진다.
오른손 좌표계에서는 a×b는, a, b, a×b가 오른손 좌표계 방향을 따르도록 정의되고, 왼손좌표계에선
마찬가지로 이 순서의 세 벡터가 왼손 좌표계 방향을 따르도록 정의된다.

--------------------------------------------------------------------------------------------------

In mathematics, the cross product is a binary operation on two vectors in a three-dimensional Euclidean space that results in another vector which is perpendicular to the two input vectors. By contrast, the dot product produces a scalar result. In many engineering and physics problems, it is handy to be able to construct a perpendicular vector from two existing vectors, and the cross product provides a means for doing so. The cross product is also known as the vector product, or Gibbs vector product.

The cross product is not defined except in three-dimensions (and the algebra defined by the cross product is not associative). Like the dot product, it depends on the metric of Euclidean space. Unlike the dot product, it also depends on the choice of orientation or "handedness." Certain features of the cross product can be generalized to other situations. For arbitrary choices of orientation, the cross product must be regarded not as a vector, but as a pseudovector. For arbitrary choices of metric, and in arbitrary dimensions, the cross product can be generalized by the exterior product of vectors, defining a two-form instead of a vector.

Definition

The cross product of two vectors a and b is denoted by a × b. In a three-dimensional Euclidean space, with a usual right-handed coordinate system, it is defined as a vector c that is perpendicular to both a and b, with a direction given by the right-hand rule and a magnitude equal to the area of the parallelogram that the vectors span.

The cross product is given by the formula

\mathbf{a} \times \mathbf{b} = a b \sin \theta \ \mathbf{\hat{n}}

where θ is the measure of the (non-obtuse) angle between a and b (0° ≤ θ ≤ 180°), a and b are the magnitudes of vectors a and b, and \mathbf{\hat{n}} is a unit vector perpendicular to the plane containing a and b. If the vectors a and b are collinear (i.e., the angle θ between them is either 0° or 180°), by the above formula, the cross product of a and b is the zero vector 0.

The direction of the vector \mathbf{\hat{n}} is given by the right-hand rule, where one simply points the forefinger of the right hand in the direction of a and the middle finger in the direction of b. Then, the vector \mathbf{\hat{n}} is coming out of the thumb (see the picture on the right).

Using the cross product requires the handedness of the coordinate system to be taken into account (as explicit in the definition above). If a left-handed coordinate system is used, the direction of the vector \mathbf{\hat{n}} is given by the left-hand rule and points in the opposite direction.

This, however, creates a problem because transforming from one arbitrary reference system to another (e.g., a mirror image transformation from a right-handed to a left-handed coordinate system), should not change the direction of \mathbf{\hat{n}}. The problem is clarified by realizing that the cross-product of two vectors is not a (true) vector, but rather a pseudovector. See cross product and handedness for more detail.

출처: 위키링크(외적), 위키링크(Cross product), 위키링크(vector)

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2007/08/30 23:42 2007/08/30 23:42

Leave a comment
[로그인][오픈아이디란?]

Dot product - 스칼라 곱

스칼라 곱(scalar product, dot product)은 두 벡터로 스칼라를 계산하는 이항연산이다.
스칼라 곱을 사용하는 모든 유클리드 공간은 내적공간이다.

두 벡터 a = [a1, a2, … , an], b = [b1, b2, … , bn]의 스칼라 곱은 다음과 같다:

\mathbf{a}\cdot \mathbf{b} = a_1b_1 + a_2b_2 + \cdots + a_nb_n = \sum_{i=1}^n a_ib_i
--------------------------------------------------------------------------------------------------

The dot product of two vectors (from an orthonormal vector space)
a = [a1, a2, … , an] and b = [b1, b2, … , bn] is by definition:
\mathbf{a}\cdot \mathbf{b} = \sum_{i=1}^n a_ib_i = a_1b_1 + a_2b_2 + \cdots + a_nb_n

where Σ denotes summation notation.

For example, the dot product of two three-dimensional vectors [1, 3, −5] and [4, −2, −1] is

\begin{bmatrix}1&3&-5\end{bmatrix} \cdot \begin{bmatrix}4&-2&-1\end{bmatrix} = (1)(4) + (3)(-2) + (-5)(-1) = 3.

Using matrix multiplication and treating the (column) vectors as n×1 matrices,
the dot product can also be written as:

\mathbf{a} \cdot \mathbf{b} = \mathbf{a}^T \mathbf{b} \,

where aT denotes the transpose of the matrix a.

Using the example from above, this would result in a 1×3 matrix (i.e., vector) multiplied by a 3×1 vector (which, by virtue of the matrix multiplication, results in a 1×1 matrix, i.e., a scalar):

\begin{bmatrix}
    1&3&-5
\end{bmatrix}\begin{bmatrix} 
    4\\-2\\-1
\end{bmatrix} = \begin{bmatrix}
    3
\end{bmatrix}.

--------------------------------------------------------------------------------------------------
The dot product of two vectors a and b (sometimes called inner product, or, since its result is a scalar, the scalar product) is denoted by a ∙ b and is defined as:

\mathbf{a}\cdot\mathbf{b}
=\left\|\mathbf{a}\right\|\left\|\mathbf{b}\right\|\cos\theta

where ||a|| and ||b|| denote the norm (or length) of a and b, and θ is the measure of the angle between a and b (see trigonometric function for an explanation of cosine). Geometrically, this means that a and b are drawn with a common start point and then the length of a is multiplied with the length of that component of b that points in the same direction as a.

The dot product can also be defined as the sum of the products of the components of each vector:

\mathbf{a} \cdot \mathbf{b} = \langle a_1, a_2, \dots, a_n \rangle \cdot \langle b_1, b_2, \dots, b_n \rangle = a_1 b_1 + a_2 b_2 + \dots + a_n b_n

where a and b are vectors of n dimensions; a1, a2, …, an are coordinates of a; and b1, b2, …, bn are coordinates of b.

This operation is often useful in physics; for instance, work is the dot product of force and displacement.

출처: 위키 링크(Dot Product), 위키 링크(Vector)
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2007/08/30 23:30 2007/08/30 23:30

Leave a comment
[로그인][오픈아이디란?]

In calculus, l'Hôpital's rule (also spelled l'Hospital) uses derivatives to help compute limits with indeterminate forms. Application (or repeated application) of the rule often converts an indeterminate form to a determinate form, allowing easy computation of the limit. The rule is named after the 17th-century French mathematician Guillaume de l'Hôpital, who published the rule in his book Analyse des infiniment petits pour l'intelligence des lignes courbes (literal translation: Analysis of the infinitely small to understand curves) (1696), the first book to be written on differential calculus.

The rule is believed to be the work of Johann Bernoulli since l'Hôpital, a nobleman, paid Bernoulli a retainer of 300₣ per year to keep him updated on developments in calculus and to solve problems he had. (Moreover, the two signed a contract allowing l'Hôpital to use Bernoulli's discoveries in any way he wished.)[1] Among these problems was that of limits of indeterminate forms. When l'Hôpital published his book, he gave due credit to Bernoulli and, not wishing to take credit for any of the mathematics in the book, he published the work anonymously. Bernoulli, who was known for being extremely jealous, claimed to be the author of the entire work, and until recently, it was believed to be so. Nevertheless, the rule was named for l'Hôpital, who never claimed to have invented it in the first place[2].

The Stolz-Cesàro theorem is a similar result involving limits of sequences, and using finite difference operators rather than derivatives.

Introduction

In simple cases, l'Hôpital's rule states that for functions f(x) and g(x), if:

\lim_{x \to c}f(x)=\lim_{x \to c}g(x)=0,

or:

\lim_{x \to c}f(x)=\lim_{x \to c}g(x)=\pm\infty,

then:

\lim_{x\to c}\frac{f(x)}{g(x)} = \lim_{x\to c}\frac{f'(x)}{g'(x)}

where the prime (') denotes the derivative.

Among other requirements, for this rule to hold, the limit \lim_{x\to c}\frac{f'(x)}{g'(x)} must exist.
Other requirements are detailed below, in the formal statement.

Proofs of l'Hôpital's rule
Proof by Cauchy's mean value theorem

The most common proof of l'Hôpital's rule uses Cauchy's mean value theorem.

  With the indeterminate form 0 over 0

The case when f(x) \to 0, g(x) \to 0

First, we expand continuously (or redefine) f(x) and g(x) by 0 for x = c. This doesn't change the limit since the limit doesn't depend on the value in the point (by definition).

According to Cauchy's mean value theorem there is a constant ξ in c < ξ < c + h such that:


  \frac{f'(\xi)}{g'(\xi)} 
= \frac{f(c + h) - f(c)}{g(c + h) - g(c)}

Since f(c) = g(c) = 0,

 \frac{f'(\xi)}{g'(\xi)} = \frac{f(c + h)}{g(c + h)}
 

If h \to 0 then \xi \to c and


\lim_{x\to c}\frac{f'(x)}{g'(x)}
= \lim_{\xi\to c}\frac{f'(\xi)}{g'(\xi)}
= \lim_{h\to 0}\frac{f(c+h)}{g(c+h)} 
= \lim_{x\to c}\frac{f(x)}{g(x)}
 

  With the indeterminate form infinity over infinity

The case when |g(x)| \to +\infty

Let x < y < x + h. Then using Cauchy's mean value theorem:


\frac{f'(\xi)}{g'(\xi)} = \frac{f(x) - f(y)}{g(x) - g(y)}
 

We rewrite that in the form

\frac{f(x)}{g(x)} = \frac{f(y)}{g(x)} + \left [ 1 - \frac{g(y)}{g(x)} \right ] \frac{f'(\xi)}{g'(\xi)}

and then by the discussion of the two cases


\begin{cases}
\lim_{x \to c}\frac{f'(x)}{g'(x)} = B \in \mathbb{R} \\
\lim_{x \to c}\frac{f'(x)}{g'(x)} = \pm \infty
\end{cases}

we show that the limit of f(x)/g(x) tends to the same when x \to c and h \to 0.

출처: 위키백과

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2007/08/17 10:43 2007/08/17 10:43

Leave a comment
[로그인][오픈아이디란?]

장비 대역폭 목록 - 2.Network

Wireless device connection
IrDA-Control
72 kbit/s
9 kB/s
IrDA-SIR
115.2 kbit/s
14 kB/s
802.15.4 (2.4 GHz)
250 kbit/s
31.25 kB/s
Bluetooth 1.1
1 Mbit/s
125 kB/s
Bluetooth 2.0+EDR
3 Mbit/s
375 kB/s
IrDA-FIR
4 Mbit/s
0.51 MB/s
IrDA-VFIR
16 Mbit/s
2 MB/s
WUSB-UWB
480 Mbit/s
60 MB/s

Wireless networking
802.11 legacy 0.125
2 Mbit/s
0.25 MB/s
RONJA free source optical wireless
10 Mbit/s
1.25 MB/s
802.11b DSSS 0.125
11 Mbit/s
1.375 MB/s
802.11b+ non-standard DSSS 0.125
44 Mbit/s
5.5 MB/s
802.11a 0.75
54 Mbit/s
6.75 MB/s
802.11g DSSS 0.125
54 Mbit/s
6.75 MB/s
802.11n
540 Mbit/s
67.5 MB/s

Mobile telephone interfaces
WiDEN
100 kbit/s
12.5 kB/s
GSM CSD
2.4~14.4 kbit/s
0.3~1.8 kB/s
HSCSD upstream
14.4 kbit/s
1.8 kB/s
HSCSD downstream
43.2 kbit/s
5.4 kB/s
GPRS upstream
28.8 kbit/s
3.6 kB/s
GPRS downstream
57.6 kbit/s
7.2 kB/s
EDGE downstream
236.8 kbit/s
29.6 kB/s
UMTS downstream
1920 kbit/s
240 kB/s
HSDPA downstream
1.8 Mbit/s~
14.4 Mbit/s
225 kB/s~
1.8 MB/s
HSUPA downstream
0.73~5.76 Mbit/s
91~720 kB/s
HSOPA downstream
100 Mbit/s
12.5 MB/s
CDMA2000 1xRTT downstream
144 Kbit/s
18 kB/s
CDMA2000 1xRTT upstream
144 Kbit/s
18 kB/s
1xEV-DO Rev. 0 downstream
2.4576 Mbit/s
307.2 kB/s
1xEV-DO Rev. 0 upstream
0.15 Mbit/s
18 kB/s
1xEV-DO Rev. A downstream
3.1 Mbit/s
396.8 kB/s
1xEV-DO Rev. A upstream
1.8 Mbit/s
230.4 kB/s
1xEV-DO Rev. B downstream
73.5 Mbit/s
9.2 MB/s
1xEV-DO Rev. B upstream
14.7 Mbit/s
1.8 MB/s
1xEV-DO Rev. C downstream
280 Mbit/s
35 MB/s
1xEV-DO Rev. C upstream
75 Mbit/s
9 MB/s

Wide area network
DS0
64 kbit/s
8 kB/s
Satellite Internet upstream
64 kbit/s~1 Mbit/s
8 kB/s~
128 kB/s
Satellite Internet downstream
128 kbit/s~16 Mbit/s
16 kB/s~
2 MB/s
Frame Relay
8 kbit/s~45 Mbit/s
1 kB/s~
5.625 MB/s
G.SHDSL
2.304 Mbit/s
0.288 MB/s
SDSL
64 kbit/s~
4.608 Mbit/s
8 kB/s~
576 kB/s
G.Lite (aka ADSL Lite) upstream
512 kbit/s
64 kB/s
G.Lite (aka ADSL Lite) downstream
1.5 Mbit/s
192 kB/s
ADSL upstream
64 kbit/s~
1.024 Mbit/s
8 kB/s~
128 kB/s
ADSL downstream
256 kbit/s~8 Mbit/s
32 kB/s~1 MB/s
ADSL2 upstream
64 kbit/s~3.5 Mbit/s
8 kB/s~448 kB/s
ADSL2 downstream
256 kbit/s~12 Mbit/s
32 kB/s~1.5 MB/s
ADSL2Plus upstream
64 kbit/s~3.5 Mbit/s
8 kB/s~448 kB/s
ADSL2Plus downstream
256 kbit/s~24 Mbit/s
32 kB/s~3 MB/s
DOCSIS v1.0 (Cable modem) upstream
10 Mbit/s
1.25 MB/s
DOCSIS v1.0 (Cable modem) downstream
38 Mbit/s
4.75 MB/s
DOCSIS v2.0 (Cable modem) upstream
30 Mbit/s
3.75 MB/s
DOCSIS v2.0 (Cable modem) downstream
40 Mbit/s
5 MB/s
DOCSIS v3.0 (Cable modem) upstream
120 Mbit/s
15 MB/s
DOCSIS v3.0 (Cable modem) downstream
160 Mbit/s
20 MB/s
DS1/T1
1.544 Mbit/s
192.5 kB/s
E1
2.048 Mbit/s
256 kB/s
T2
6.312 Mbit/s
789 KB/s
E2
8.448 Mbit/s
1.056 MB/s
E3
34.368 Mbit/s
4.296 MB/s
DS3/T3 ('45 Meg')
44.736 Mbit/s
5.5925 MB/s
STS-1/EC-1/OC-1/STM-0
51.84 Mbit/s
6.48 MB/s
VDSL (symmetry optional)
12 Mbit/s~
100 Mbit/s
1.5~12.5 MB/s
VDSL2 (symmetry optional)
12 Mbit/s~
250 Mbit/s
1.5~31.25 MB/s
LR-VDSL2 (4 to 5 km [long-]range)
(symmetry optional)
1 Mbit/s~4 Mbit/s
128 ~512 kB/s
OC-1
51.84 Mbit/s
6.48 MB/s
OC-3/STM-1
155.52 Mbit/s
19.44 MB/s
T4
274.176 Mbit/s
34.272 MB/s
T5
400.352 Mbit/s
50.044 MB/s
OC-9
466.56 Mbit/s
58.32 MB/s
OC-12/STM-4
622.08 Mbit/s
77.76 MB/s
OC-18
933.12 Mbit/s
116.64 MB/s
OC-24
1.244 Gbit/s
155.5 MB/s
OC-36
1.9 Gbit/s
237.5 MB/s
OC-48/STM-16
2.48832 Gbit/s
311.04 MB/s
OC-96
4.976 Gbit/s
622 MB/s
OC-192/STM-64
9.95328 Gbit/s
1.24416 GB/s
10 Gigabit Ethernet WAN PHY
9.95328 Gbit/s
1.24416 GB/s
10 Gigabit Ethernet LAN PHY
10 Gbit/s
1.25 GB/s
OC-256
13.271 Gbit/s
1.65888 GB/s
OC-768/STM-256
39.81312 Gbit/s
4.97664 GB/s
OC-1536/STM-512
79.626 Gbit/s
9.95325 GB/s
OC-3072/STM-1024
159.252 Gbit/s
19.9065 GB/s

Local area network
LocalTalk
230.1 kbit/s
28.8 kB/s
Econet
800 kbit/s
100 kB/s
ARCNET (Standard)
2.5 Mbit/s
0.3125 MB/s
Ethernet Experimental
3 Mbit/s
0.375 MB/s
Token Ring (Original)
4.16 Mbit/s
0.52 MB/s
Ethernet (10base-X)
10 Mbit/s
1.25 MB/s
Token Ring (Later)
16 Mbit/s
2 MB/s
Token Ring (Later)
100 Mbit/s
12.5 MB/s
Fast Ethernet (100base-X)
100 Mbit/s
12.5 MB/s
FDDI
100 Mbit/s
12.5 MB/s
Token Ring (Later)
1 Gbit/s
125 MB/s
Gigabit Ethernet (1000base-X)
1 Gbit/s
125 MB/s
Myrinet 2000
2 Gbit/s
250 MB/s
Infiniband 1X
2.5 Gbit/s
312 MB/s
10 gigabit Ethernet (10Gbase-X)
10 Gbit/s
1.25 GB/s
Myri 10G
10 Gbit/s
1.25 GB/s
Infiniband 4X
10 Gbit/s
1.25 GB/s

출처: 위키백과
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2007/08/10 13:10 2007/08/10 13:10

Leave a comment
[로그인][오픈아이디란?]

This is a list of device bandwidths: the channel capacity (or, more informally, bandwidth) of some computer devices employing methods of data transport is listed by bit/s, kilobit/s (kbit/s), megabit/s (Mbit/s), or gigabit/s (Gbit/s) as appropriate and also MB/s or megabytes per second. They are listed in order from lowest bandwidth to highest.

Whether to use bit/s or byte/s (B/s) is often a matter of convention. The most commonly cited measurement is bolded. In general, parallel interfaces are quoted in byte/s (B/s), serial in bit/s. On devices like modems, bytes may be more than 8 bits long because they may be individually padded out with additional start and stop bits; the figures below will reflect this. Where channels use line codes, such as Ethernet, Serial ATA and PCI Express, quoted speeds are for the decoded signal.

Many of these figures are theoretical maxima, and various real-world considerations will generally keep the actual effective throughput much lower. The actual throughput achievable on Ethernet networks, for example (especially when heavily loaded or when running over substandard media), is debatable. The figures are also simplex speeds, which may conflict with the duplex speeds vendors sometimes use in promotional materials.

All of the figures listed here are true metric quantities and use metric binary prefixes (1 kilobit, for example, is 1000 bits, not 1024 bits). Similarly, kB, MB, GB mean kilobytes, megabytes, gigabytes, not kibibytes, mebibytes, gibibytes.


Computer buses

ISA 8-Bit/4.77 MHz
9.6 Mbit/s
1.2 MB/s
Zorro II 16-Bit/7.14 MHz
28.56 Mbit/s
3.56 MB/s
ISA 16-Bit/8.33 MHz
42.4 Mbit/s
5.3 MB/s
Low Pin Count
133.33 Mbit/s
16.67 MB/s
HP-Precision Bus
184 Mbit/s
23 MB/s
EISA 8-16-32bits/8.33 MHz
320 Mbit/s
32 MB/s
VME64 32-64bits
400 Mbit/s
40 MB/s
NuBus 10MHz
400 Mbit/s
40 MB/s
DEC TURBOchannel 32-bit/12.5 MHz
400 Mbit/s
50 MB/s
MCA 16-32bits/10 MHz
660 Mbit/s
66 MB/s
NuBus90 20MHz
800 Mbit/s
80 MB/s
Sbus 32-bit/25 MHz
800 Mbit/s
100 MB/s
DEC TURBOchannel 32-bit/25 MHz
800 Mbit/s
100 MB/s
PCI 32-bit/33 MHz
1.06666 Gbit/s
133.33 MB/s
HP GSC-1X
1.136 Gbit/s
142 MB/s
Sbus 64-bit/25 MHz
1.6 Gbit/s
200 MB/s
PCI Express (x1 link)
2 Gbit/s
250 MB/s
HP GSC-2X
2.048 Gbit/s
256 MB/s
PCI 64-bit/33 MHz
2.13333 Gbit/s
266.66 MB/s
PCI 32-bit/66 MHz
2.13333 Gbit/s
266.66 MB/s
AGP 1x
2.13333 Gbit/s
266.66 MB/s
PCI Express (x2 link)
4 Gbit/s
500 MB/s
AGP 2x
4.26666 Gbit/s
533.33 MB/s
PCI 64-bit/66 MHz
4.26666 Gbit/s
533.33 MB/s
PCI-X DDR 16-bit
4.26666 Gbit/s
533.33 MB/s
PCI 64-bit/100 MHz
6.39999 Gbit/s
799.99 MB/s
PCI Express (x4 link)
8 Gbit/s
1.00 GB/s
AGP 4x
8.53333 Gbit/s
1.06666 GB/s
PCI-X 133
8.53333 Gbit/s
1.06666 GB/s
PCI-X QDR 16-bit
8.53333 Gbit/s
1.06666 GB/s
InfiniBand single 4X
10 Gbit/s
1.25 GB/s
UPA
15.36 Gbit/s
1.92 GB/s
PCI Express (x8 link)
16 Gbit/s
2 GB/s
AGP 8x
17.066 Gbit/s
2.133 GB/s
PCI-X DDR
17.066 Gbit/s
2.133 GB/s
PCI Express (x16 link)
32 Gbit/s
4 GB/s
PCI-X QDR
34.133 Gbit/s
4.266 GB/s
AGP 8x 64-bit
34.133 Gbit/s
4.266 GB/s
HyperTransport (800 MHz, 16-pair)
51.2 Gbit/s
6.4 GB/s
HyperTransport (1 GHz, 16-pair)
64 Gbit/s
8 GB/s
PCI Express (x32 link)
64 Gbit/s
8 GB/s
PCI Express 2.0 (x16 link)
64 Gbit/s
8 GB/s
PCI Express 2.0 (x32 link)
128 Gbit/s
16 GB/s
HyperTransport (2.8 GHz, 32-pair)
179.2 Gbit/s
22.4 GB/s

Computer buses (storage)
PC Floppy Disk Controller (1.44MB)
0.5 Mbit/s
62.5 kB/s
PIO Mode 0
26.4 Mbit/s
3.3 MB/s
SCSI 1 (5 MHz)
40 Mbit/s
5 MB/s
PIO Mode 1
41.6 Mbit/s
5.2 MB/s
PIO Mode 2
66.4 Mbit/s
8.3 MB/s
Fast SCSI 2 (8 bits/10 MHz)
80 Mbit/s
10 MB/s
PIO Mode 3
88.8 Mbit/s
11.1 MB/s
PIO Mode 4
133.3 Mbit/s
16.7 MB/s
Fast Wide SCSI 2 (16 bits/10 MHz)
160 Mbit/s
20 MB/s
Ultra DMA ATA 33
264 Mbit/s
33 MB/s
Ultra Wide SCSI 40 (16 bits/20 MHz)
320 Mbit/s
40 MB/s
Ultra DMA ATA 66
528 Mbit/s
66 MB/s
Ultra-2 wide SCSI 80 (16 bits/40 MHz)
640 Mbit/s
80 MB/s
Serial Storage Architecture SSA
640 Mbit/s
80 MB/s
Ultra DMA ATA 100
800 Mbit/s
100 MB/s
Fibre Channel 1GFC (1.0625 GHz)
850 Mbit/s
106.25 MB/s
Ultra DMA ATA 133
1.064 Gbit/s
133 MB/s
Serial ATA (SATA-150)
1.2 Gbit/s
150 MB/s
Ultra-3 SCSI 160 (16 bits/40 MHz DDR)
1.28 Gbit/s
160 MB/s
Fibre Channel 2GFC (2.125 GHz)
1.7 Gbit/s
212.5 MB/s
Serial ATA (SATA-300)
2.4 Gbit/s
300 MB/s
Ultra-320 SCSI (16 bits/80 MHz DDR)
2.56 Gbit/s
320 MB/s
Serial Attached SCSI
3 Gbit/s
375 MB/s
Fibre Channel 4GFC (4.25 GHz)
3.4 Gbit/s
425 MB/s
Ultra-640 SCSI (16 bits/160 MHz DDR)
(Not yet implemented)
5.12 Gbit/s
640 MB/s
Serial Attached SCSI 2 (Not yet implemented)
6 Gbit/s
750 MB/s

Computer buses (external)
PC Floppy Disk Controller (1.44MB)
0.5 Mbit/s
62.5 kB/s
PIO Mode 0
26.4 Mbit/s
3.3 MB/s
SCSI 1 (5 MHz)
40 Mbit/s
5 MB/s
PIO Mode 1
41.6 Mbit/s
5.2 MB/s
PIO Mode 2
66.4 Mbit/s
8.3 MB/s
Fast SCSI 2 (8 bits/10 MHz)
80 Mbit/s
10 MB/s
PIO Mode 3
88.8 Mbit/s
11.1 MB/s
PIO Mode 4
133.3 Mbit/s
16.7 MB/s
Fast Wide SCSI 2 (16 bits/10 MHz)
160 Mbit/s
20 MB/s
Ultra DMA ATA 33
264 Mbit/s
33 MB/s
Ultra Wide SCSI 40 (16 bits/20 MHz)
320 Mbit/s
40 MB/s
Ultra DMA ATA 66
528 Mbit/s
66 MB/s
Ultra-2 wide SCSI 80 (16 bits/40 MHz)
640 Mbit/s
80 MB/s
Serial Storage Architecture SSA
640 Mbit/s
80 MB/s
Ultra DMA ATA 100
800 Mbit/s
100 MB/s
Fibre Channel 1GFC (1.0625 GHz)
850 Mbit/s
106.25 MB/s
Ultra DMA ATA 133
1.064 Gbit/s
133 MB/s
Serial ATA (SATA-150)
1.2 Gbit/s
150 MB/s
Ultra-3 SCSI 160 (16 bits/40 MHz DDR)
1.28 Gbit/s
160 MB/s
Fibre Channel 2GFC (2.125 GHz)
1.7 Gbit/s
212.5 MB/s
Serial ATA (SATA-300)
2.4 Gbit/s
300 MB/s
Ultra-320 SCSI (16 bits/80 MHz DDR)
2.56 Gbit/s
320 MB/s
Serial Attached SCSI
3 Gbit/s
375 MB/s
Fibre Channel 4GFC (4.25 GHz)
3.4 Gbit/s
425 MB/s
Ultra-640 SCSI (16 bits/160 MHz DDR)
(Not yet implemented)
5.12 Gbit/s
640 MB/s
Serial Attached SCSI 2 (Not yet implemented)
6 Gbit/s
750 MB/s

출처: 위키백과
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2007/08/10 12:35 2007/08/10 12:35

Leave a comment
[로그인][오픈아이디란?]

VHDL은 디지털 회로의 설계 자동화에 사용하는 하드웨어 기술 언어이다. VHDL이라는 이름은 'VHSIC 하드웨어 기술 언어'(VHSIC Hardware Description Languae)의 약자이다.

VHDL는 원래 미국 국방부에서 주문형 집적회로(ASIC)의 문서화에 사용하기 위해 만든 언어였다. 즉, 복잡한 매뉴얼로 회로의 동작 내용을 설명하는 대신, 회로의 동작 내용을 문서화하여 설명하기 위해 개발했다. 그러나 이런 문서를 회로 디자인 과정에서 시뮬레이션에 사용하게 되었고, VHDL 파일을 읽어들여서 논리 합성을 한 다음 실제 회로 형태를 출력하는 기능을 덧붙이게 되었다. 오늘날에는 디지털 회로의 설계, 검증, 구현등의 모든 용도로 사용하고 있다.

VHDL은 Ada 프로그래밍 언어의 부분집합에 디지털 회로에 필수적인 시간 개념을 추가하는 방식으로 만들어졌으나, IEEE 표준화 작업을 거치면서 오늘날과 같은 형태와 문법을 가지게 되었다.

Discussion

VHDL is a fairly general-purpose language, although it requires a simulator on which to run the code. It can read and write files on the host computer, so a VHDL program can be written that generates another VHDL program to be incorporated in the design being developed. Because of this general-purpose nature, it is possible to use VHDL to write a testbench that verifies the functionality of the design using files on the host computer to define stimuli, interacts with the user, and compares results with those expected. This is similar to the capabilities of the Verilog language. VHDL is a strongly typed language, and as a result is considered by some to be superior to Verilog. In fact there has always been quite an intense debate which amounts to a holy war amongst developers over which is the superior language. However, both languages make it easy for the unwary and inexperienced to produce code that simulates successfully, but that cannot be synthesized into a real device, or else is too large to be practicable. A particular pitfall in both languages is the accidental production of transparent latches rather than D-type flip-flops as storage elements.

The key advantage of VHDL when used for systems design is that it allows the behaviour of the required system to be described (modelled) and verified (simulated) before synthesis tools translate the design into real hardware (gates and wires).

Another benefit is that VHDL allows the description of a concurrent system (many parts, each with its own sub-behaviour, working together at the same time). This is unlike many of the other computing languages such as BASIC, Pascal, C, or lower-level assembly language which runs at machine code level, which all run sequentially, one instruction at a time on von Neumann architectures.

A final point is that when a VHDL model is translated into the "gates and wires" that are mapped onto a programmable logic device such as a CPLD or FPGA, then it is the actual hardware being configured, rather than the VHDL code being "executed" as if on some form of a processor chip.


Getting Started

As with any hardware or software language, becoming proficient in VHDL requires a commitment to study and practice. Although background in a computer programming language (such as C) is helpful, it is not essential. Today, free VHDL simulators are readily available, and although these are limited in functionality compared to commercial VHDL simulators, they are more than sufficient for independent study. If the user's goal is to learn RTL coding, i.e. design hardware circuits in VHDL (as opposed to simply document or simulate circuit behavior), then a synthesis/design package is also essential to the learning process.

As with VHDL simulators, free FPGA synthesis tools are readily available, and are more than adequate for independent study. Feedback from the synthesis tool gives the user a feel for the relative efficiencies of different coding styles. A schematic/gate viewer shows the user the synthesized design as a navigable netlist diagram. Many FPGA design packages offer alternative design input methods, such as block-diagram (schematic) and state-diagram capture. These provide a useful starting template for coding certain types of repetitive structures, or complex state-transition diagrams. Finally, the included tutorials and examples are valuable aids.

Nearly all FPGA design and simulation flows support both Verilog and VHDL, allowing the user to learn either or both languages. Here is a list of free design & simulation packages for VHDL/Verilog:

Vendor Trial Software License Simulator Synthesizer RTL view Gate view
Actel Libero gold one year free license ModelSim Actel Edition Synplify Actel Edition No *yes
Altera Quartus II web edition one year free license ModelSim Altera Edition Altera Quartus II yes *yes
Lattice ispLever starter 6 months renewable free license Precision/Synplify Lattice Edition No yes
Mentor none free license ModelSim PE Student Edition no yes no
Xilinx ISE webpack free license ISE Simulator Xilinx XST yes *yes

출처: 위키백과(한글), 위키백과(영문)
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2007/07/29 23:05 2007/07/29 23:05

Leave a comment
[로그인][오픈아이디란?]

PCI(Peripheral Component Interconnect)

PCI(피씨-아이]는 고속운영을 위해 마이크로프로세서와 가깝게 위치해 있는 확장 슬롯들에 부착된 장치들 간의 상호접속 시스템이다. PCI를 사용하면 컴퓨터는 새로운 PCI 카드들과, 현재 가장 일반적인 확장카드의 종류인 ISA 확장카드를 함께 지원할 수 있다. 인텔에 의해 설계된 초기의 PCI는 VESA 로컬버스와 비슷했지만, PCI 2.0부터는 더 이상 로컬버스가 아니며, 마이크로프로세서 디자인과는 독립적으로 설계되었다. PCI는 20~33 MHz 범위의 마이크로프로세서 클록 속도에 동기화 되도록 설계되었다.
PCI는 이제 인텔 펜티엄 프로세서 기반의 시스템은 물론, PowerPC 기반의 시스템을 비롯한 대부분의 새로운 데스크탑 컴퓨터에 설치되었다. PCI는 124 핀의 접속으로 한번에 32 비트를 전송하며, 확장된 제품인 188 핀 접속에서는 64 비트를 전송한다. PCI는 주소와 데이터 신호를 전송하기 위해 모든 동적 경로들을 사용하며, 첫 번째 클록 사이클에 주소를 보내고 그 다음에 데이터를 보낸다. 많은 량의 데이터를 보낼 때에는 첫 번째 사이클에 시작 주소를 보낸 다음, 이어지는 일정횟수의 사이클 동안 계속해서 데이터 전송을 하는 것도 가능하다.
<출처 : 김동근의 텀즈 * 컴퓨터 용어사전 http://www.terms.co.kr/>


The Peripheral Component Interconnect, or PCI Standard (in practice almost always shortened to PCI) specifies a computer bus for attaching peripheral devices to a computer motherboard. These devices can take any one of the following forms:
 
   * An integrated circuit fitted onto the motherboard itself, called a planar device in the PCI specification.
   * An expansion card that fits into a socket.
The PCI bus is common in modern PCs, where it has displaced ISA and VESA Local Bus as the standard expansion bus, but it also appears in many other computer types. The bus will eventually be succeeded by PCI Express, which is standard in most new computers, and other technologies.
 
The PCI specification covers the physical size of the bus (including wire spacing), electrical characteristics, bus timing, and protocols. The specification can be purchased from the PCI Special Interest Group (PCISIG).
 
Conventional hardware specifications
These specifications represent the most common version of PCI used in normal PCs.
   * 33.33 MHz clock with synchronous transfers
   * peak transfer rate of 133 MB per second for 32-bit bus width
      (33.33 MHz × 32 bits ÷ 8 bits/byte = 133 MB/s)
   * peak transfer rate of 266 MB/s for 64-bit bus width
   * 32-bit or 64-bit bus width
   * 32-bit address space (4 gigabytes)
   * 32-bit I/O port space (now deprecated)
   * 256-byte configuration space
   * 5-volt signaling
   * reflected-wave switching
 
Variants
 - Conventional
   * Later versions of PCI allow (and in the latest versions require) 3.3V slots (keyed differently) on motherboards and allow
     for cards that are either double keyed for both voltages or even 3.3V only.
   * PCI 2.2 allows for 66 MHz signalling (requires 3.3 volt signalling) (peak transfer rate of 533 MB/s)
   * PCI 2.3 permits use of 3.3 volt and universal keying, but does not allow 5 volt keyed add in cards.
   * PCI 3.0 is the final official standard of the bus, completely removing 5-volt capability.
   * PCI-X doubles the width to 64-bit, revises the protocol, and increases the maximum signaling frequency to 133 MHz
     (peak transfer rate of 1014 MB/s)
   * PCI-X 2.0 permits a 266 MHz rate (peak transfer rate of 2035 MB/s) and also 533 MHz rate, expands the configuration
      space to 4096 bytes, adds a 16-bit bus variant and allows for 1.5 volt signaling
   * Mini PCI is a new form factor of PCI 2.2 for use mainly inside laptops
   * CardBus is a PC card form factor for 32-bit, 33 MHz PCI
   * CompactPCI, uses Eurocard-sized modules plugged into a PCI backplane.
   * PC/104-Plus is an industrial bus that uses the PCI signal lines with different connectors.

Physical card dimensions
 - Full-size card
The original "full-size" PCI card is specified as a height of 107 mm (4.2 inches) and a depth of 312 mm (12.283 inches). The height includes the edge card connector. However, most modern PCI cards are half-length or smaller (see below) and many PCs cannot fit a full size card.

 - Backplate
In addition to these dimensions the physical size and location of a card's backplate are also standardized. The backplate is the part that fastens to the card cage to stabilize the card and also contains external connectors,so it usually attaches in a window so it is accessible from outside the computer case.
The card itself can be a smaller size, but the backplate must still be full-size and properly located so that the card fits in any standard PCI slot.

 - Half-length extension card (de-facto standard)
This is in fact the practical standard now - the majority of modern PCI cards fit inside this length.
   * Width: 0.6 inches (15.24 mm)
   * Depth: 6.9 inches (175.26 mm)
   * Height: 4.2 inches (106.68 mm)
 
 - Low profile (half height) card
The PCI organisation has a defined a standard for "low profile" cards, which basically fit in the following ranges:
   * Height: 1.42 inches (36.07 mm) to 2.536 inches (64.41 mm)
   * Depth: 4.721 inches (119.91 mm) to 6.6 inches (167.64 mm)
The bracket is also reduced in height, to a standard 3.118 inches (79.2 mm).
These cards may be known by other names such as "slim".

 - Mini PCI
This is a specialist version of PCI slot intended for laptops and the like, and is not usually used by consumers.

 - Other physical variations
Typically consumers systems specify "N x PCI slots" without specifying actual dimensions of the space available. In some small form-factor systems, this may not be sufficient to allow even "half-length" PCI cards to fit. Despite this limitation, these systems are still useful because many modern PCI cards are considerably smaller than half-length.

 - Card keying
Typical PCI cards present either one or two key notches, depending on their signaling voltage. Cards requiring 3.3 volt have a notch near the front of the card (where the external connectors are) while those requiring 5 volt have a notch near on the other side. So called "Universal cards" have both key notches and can accept both types of signal.

출처: 위키백과
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by downright

2007/07/25 20:53 2007/07/25 20:53

Leave a comment
[로그인][오픈아이디란?]