ഡിജിറ്റൽ രൂപത്തിലുള്ള വിവരങ്ങളെയും,ഡാറ്റയേയും മറ്റും അളക്കുന്നതിനുള്ള ഒരു ഏകകം ആണ് ബൈറ്റ്. ഒരു ബൈറ്റ് എന്നാൽ സാധാരണയായി എട്ടു ബിറ്റുകൾ കൂടിച്ചേർന്നതാണ്. ആദ്യകാലത്ത് കമ്പ്യൂട്ടറിൽ ഒരു അക്ഷരം ഒരു ബൈറ്റ് കൊണ്ടാണ് സൂചിപ്പിച്ചിരുന്നത്.
[1][2] ഇക്കാരണത്താൽ പല കമ്പ്യൂട്ടർ ആർക്കിടെക്ചറുകളിലും അഡ്രസ് ചെയ്യാവുന്ന മെമ്മറിയുടെ ഏറ്റവും ചെറിയ മാത്രയായി ബെറ്റിനെ കണക്കാക്കുന്നു.
കാലാകാലങ്ങളായി ബൈറ്റിന്റെ നീളം അത് സ്ഥിതി ചെയ്യുന്ന കമ്പ്യൂട്ടറിന്റെ ആർക്കിടെക്ചറുമായി ബന്ധപ്പെട്ടാണ് ഇരുന്നിരുന്നത്. 1[3] മുതൽ 48[4] വരെ ബിറ്റുകൾ കൂടിച്ചേർന്ന ബൈറ്റുകൾ ഉള്ള കംപ്യൂട്ടറുകൾ ഉണ്ടായിരുന്നിട്ടുണ്ട്.
ISO/IEC 2382-1:1993 സ്റ്റാൻഡേർഡിൽ രേഖപ്പെടുത്തിയ പ്രകാരം ഇക്കാലത്തു ബൈറ്റിന്റെ പ്രമാണ നീളം 8 ബിറ്റുകൾ ആണ്. ഇതു മൂലം ഒരു ബൈറ്റിൽ സൂക്ഷിയ്ക്കാവുന്ന പരമാവധി വില 2 ന്റെ ഒരു ഘാതമായ 256 ആണ്.[5]
ബൈറ്റ് അളവ് സൂചിപ്പിക്കാൻ സാധാരണയായി B എന്ന ചിഹ്നമാണ് ഉപയോഗിക്കുന്നത്.[6]
ചരിത്രം
ജൂൺ 1956 ൽ ഐ.ബി.എം സ്ട്രെച്ച് (IBM Stretch) എന്ന കമ്പ്യൂട്ടറിന്റെ[7] ഡിസൈൻ വേളയിൽ വെർണർ ബുഹ്ഹോൾസ് ആണ് ബൈറ്റ് എന്ന പദം ആദ്യമായി ഉപയോഗിച്ചത്. bite എന്ന പദത്തിന് bit എന്ന പദവുമായുള്ള ആശയക്കുഴപ്പം ഒഴിവാക്കാനായി ഇതിനെ മനപൂർവം സ്പെല്ലിങ് തെറ്റിച്ചാണ് byte എന്ന വാക്ക് ഉണ്ടാക്കിയെടുത്തത്.[1]ബൈറ്റ് എന്ന പദത്തിന്റെ മറ്റൊരു ഉത്ഭവം ലൂയിസ് ജി. ഡൂലെ'യിൽ നിന്നാണ്. 1956/57 ൽ ജൂൾസ് ഷ്വാർട്സ്, ഡിക്ക് ബീലെർ എന്നീ രണ്ടു പെരുമായിച്ചേർന്ന് എം.ഐ.ടി ലിങ്കൺ ലബോറട്ടറിയിൽ SAGE എന്ന എയർ ഡിഫെൻസ് സിസ്റ്റം ഡിസൈൻ ചെയ്യുന്ന വേളയിൽ താനാണ് ഈ വാക്ക് ആദ്യം ഉപയോഗിച്ചതെന്ന് അവകാശമുന്നയിച്ചിട്ടുണ്ട്.[8][9][10]
ആദ്യകാല കംപ്യൂട്ടറുകൾ പല തരത്തിലുള്ള നാല്-ബിറ്റ് ബി.സി.ഡി (ബൈനറി കോഡെഡ് ഡെസിമൽ) സമ്പ്രദായങ്ങൾ ഉപയോഗിച്ചിരുന്നു. യു.എസ് ആർമിയിലും നേവിയിലും ആറ്-ബിറ്റ് എൻകോഡിങ് സമ്പ്രദായങ്ങളും സുലഭമായിരുന്നു. ഇവയിൽ ആൽഫന്യൂമെറിക് ചിഹ്നങ്ങളും പ്രത്യേക ഗ്രാഫിക് ചിഹ്നങ്ങളും ഉൾപ്പെട്ടിരുന്നു. 1963 ൽ അമേരിക്കൻ സ്റ്റാൻഡേർഡ് കോഡ് ഫോർ ഇൻഫർമേഷൻ എക്സ്ചേഞ്ച് ( ആസ്കി അഥവാ ASCII) എന്ന ഏഴു ബിറ്റുകൾ ഉള്ള ഒരു പ്രമാണ കോഡിങ് സമ്പ്രദായം നിലവിൽ വന്നു. ഇംഗ്ലീഷ് വലിയക്ഷരങ്ങളും ചെറിയക്ഷരങ്ങളും ചിഹ്നനങ്ങളും ഗദ്യവിന്യാസചിഹ്നങ്ങളും ഉൾക്കൊള്ളുന്നതായിരുന്നു ആസ്കി.[11]
ആസ്കി പ്രചാരത്തിൽ വന്ന 1960 കളുടെ തുടക്കത്തിൽ ഐ.ബി.എം അവരുടെ സിസ്റ്റം/360 എന്ന ടൈപ്പ് കംപ്യൂട്ടറുകൾ പുറത്തിറക്കി. ഈ കംപ്യൂട്ടറുകളിൽ എക്സ്ടെൻഡഡ് ബൈനറി കോഡഡ് ഡെസിമൽ ഇന്റർചേഞ്ച് കോഡ് ( EBCDIC) എന്ന 8 ബിറ്റ് നീളമുള്ള ഒരു സ്റ്റാൻഡേർഡ് ആണ് ഉപയോഗിച്ചിരുന്നത്.[12] സിസ്റ്റം/360 കംപ്യൂട്ടറുകളുടെ വ്യാപകപ്രചാരം ആണ് 8 ബിറ്റ് നീളമുള്ള ബൈറ്റുകളുടെ ആവിഷ്കാരത്തിനു തുടക്കം കുറിച്ചത്.[11] 1970 കളിലെ 8 ബിറ്റ് മൈക്രോപ്രോസസ്സറുകളുടെ വികാസം സംഭരണശേഷിയ്ക്കായി 8 ബിറ്റ് ഉപയോഗപ്പെടുത്തുന്ന കീഴ്വഴക്കത്തിന് കൂടുതൽ പ്രചാരം നൽകി.
പ്രതീകം
IEC 80000-13, IEEE 1541 എന്നീ സ്റ്റാൻഡേർഡുകൾ പ്രകാരം ബൈറ്റ് എന്ന ഏകകത്തിന്റെ പ്രതീകം ഇംഗ്ലീഷ് വലിയക്ഷരമായ B ആണ്. IEEE 1541 പ്രകാരം ബിറ്റിന്റെ പ്രതീകം ചെറിയക്ഷരം ആയ b ആണ്. പക്ഷെ B എന്ന പ്രതീകവുമായുള്ള ആശയക്കുഴപ്പം ഒഴിവാക്കാനായി IEC 80000-13 ൽ ബിറ്റിന്റെ പ്രതീകമായി bit എന്നാണ് അംഗീകരിച്ചിട്ടുള്ളത്.
ബൈറ്റിന്റെ ധാരിത
ഒരു ബൈറ്റ് ഉപയോഗിച്ച് 256 വ്യത്യസ്ത എണ്ണൽ സംഖ്യകളിൽ ഏതെങ്കിലും ഒന്നിനെ സൂചിപ്പിക്കാം. എന്നാൽ രണ്ടു ബൈറ്റുകൾ (അതായതു് 16 ബിറ്റുകൾ) ചേർത്തുവെച്ചാൽ ഒരു ഹെക്സാഡെസിമൽ സ്ഥാനം നിർണ്ണയിക്കാം. താഴെ ചേർത്ത പട്ടികയിൽ ഒരു ബൈറ്റിന്റെ ആകെ സാദ്ധ്യമായ 256 വിധങ്ങളിൽ ആദ്യത്തെ 16 എണ്ണം കാണിച്ചിരിക്കുന്നു:
കൂടുതൽ വിവരങ്ങൾ സാധാരണ (ദശാംശരീതിയിലുള്ള) സംഖ്യ, ഒരു ബൈറ്റ് രൂപത്തിൽ വെവ്വേറെ ബിറ്റുകളായി കാണിച്ചിരിക്കുന്നു. ...
ഏകകത്തിന്റെ ഗുണിതങ്ങളെ എത്രമാത്രം ഏകീകരിച്ചിട്ടും ബൈറ്റിന്റ ഗുണിതങ്ങളുടെ എസ്.ഐ ഉപസർഗങ്ങളുടെ (prefix) ഉപയോഗത്തിൽ ഇപ്പോഴും ആശയക്കുഴപ്പം നിലവിലുണ്ട്. പ്രധാനമായും കിലോ (k അല്ലെങ്കിൽ K), മെഗാ (m അല്ലെങ്കിൽ M), ഗിഗാ (g അല്ലെങ്കിൽ G) എന്നീ ഉപസർഗങ്ങളുടെ ഉപയോഗമാണ് വ്യക്തതയില്ലാത്തത്. കമ്പ്യൂട്ടറിന്റെ മെമ്മറി ആർക്കിടെക്ചറുകൾ എല്ലാം 2ന്റെ ഘാതങ്ങളായാണ് രേഖപ്പെടുത്തിപോരുന്നത്(1024, 1048576 തുടങ്ങിയവ). ചില സന്ദർഭങ്ങളിൽ ഈ ഉപസർഗങ്ങൾ 2 ന്റെ ഘാതങ്ങൾ രേഖപ്പെടുത്താൻ ഉപയോഗിയ്ക്കുന്നു.(ഉദാ: കിലോ എന്നത് 1024 നെ രേഖപ്പെടുത്താൻ). എന്നാൽ ഡിസ്ക് നിർമ്മാതാക്കളും മറ്റും ഈ ഉപസർഗങ്ങൾ എസ്.ഐ ഗുണിതങ്ങളായായി ഉപയോഗിയ്ക്കാറുണ്ട് (ഉദാ: കിലോബൈറ്റ് എന്നാൽ 1000 ബൈറ്റുകൾ). ചെറിയ സംഖ്യകളിൽ ഇവ തമ്മിലുള്ള വ്യത്യാസം ചെറുതാണെങ്കിലും yotta എന്ന ഉപസർഗം എത്തുമ്പോഴേയ്ക്കും ഇവ തമ്മിലുള്ള വ്യത്യാസം ഏകദേശം 20 ശതമാനത്തോളം എത്തുന്നു.
സാധാരണ ഉപയോഗങ്ങൾ
പല പ്രോഗ്രാമിങ് ഭാഷകളിലും byte എന്ന ഡാറ്റാ ടൈപ്പ് ഉണ്ട്.
സി/സി++ പ്രോഗ്രാമിങ് ഭാഷകളിൽ ഒരു byte എന്നത് ഇങ്ങനെ നിർവചിയ്ക്കപ്പെട്ടിരിയ്ക്കുന്നു: "addressable unit of data storage large enough to hold any member of the basic character set of the execution environment" (clause 3.6 of the C standard). അതുപോലെ ഈ സ്റ്റാൻഡേർഡുകൾ രണ്ടു ബൈറ്റുകൾക്കിടയിൽ ഒഴിവുകളും പാടില്ല എന്ന് നിഷ്കർഷിയ്ക്കുന്നുണ്ട്.[13]
ജാവയിലെ അടിസ്ഥാന byte ഡാറ്റാ ടൈപ്പ് 8 ബിറ്റുകൾ ഉള്ള ചിഹ്നമുള്ള (signed), -128 മുതൽ 127 വരെയുള്ള സംഖ്യകളെ സംഭരിയ്ക്കാൻ കഴിവുള്ളതായിട്ടാണ് നിർവചിയ്ക്കപ്പെട്ടിരിയ്ക്കുന്നത്.
സി# പോലെയുള്ള .നെറ്റ് പ്രോഗ്രാമിങ് ഭാഷകളിൽ ചിഹ്നമുള്ളതും (signed, sbyte) ചിഹ്നമില്ലാത്തതുമായ (unsigned, byte) 8 ബിറ്റുകൾ ഉൾക്കൊള്ളുന്ന ഡാറ്റാ ടൈപ്പുകൾ ഉണ്ട്. ആദ്യത്തേതിൽ -128 മുതൽ 127 വരെയുള്ള സംഖ്യകളെ സംഭരിയ്ക്കാം. രണ്ടാമത്തേതിൽ 0 മുതൽ 255 വരെയുള്ള സംഖ്യകളെ സംഭരിയ്ക്കാം.
Tafel, Hans Jörg (1971). Written at RWTH, Aachen, Germany. Einführung in die digitale Datenverarbeitung[Introduction to digital information processing] (in ജർമ്മൻ). Munich, Germany: Carl Hanser Verlag. p.300. ISBN3-446-10569-7. Byte = zusammengehörige Folge von i.a. neun Bits; davon sind acht Datenbits, das neunte ein Prüfbit (NB. Defines a byte as a group of typically 9 bits; 8 data bits plus 1 parity bit.)
Blaauw, Gerrit Anne; Brooks, Jr., Frederick Phillips; Buchholz, Werner (1962), "4: Natural Data Units", in Buchholz, Werner (ed.), Planning a Computer System – Project Stretch(PDF), McGraw-Hill Book Company, Inc. / The Maple Press Company, York, PA., pp.39–40, LCCN61-10466, archived(PDF) from the original on 2017-04-03, retrieved 2018-04-20, […] Terms used here to describe the structure imposed by the machine design, in addition to bit, are listed below. Byte denotes a group of bits used to encode a character, or the number of bits transmitted in parallel to and from input-output units. A term other than character is used here because a given character may be represented in different applications by more than one code, and different codes may use different numbers of bits (i.e., different byte sizes). In input-output transmission the grouping of bits may be completely arbitrary and have no relation to actual characters. (The term is coined from bite, but respelled to avoid accidental mutation to bit.) A word consists of the number of data bits transmitted in parallel from or to memory in one memory cycle. Word size is thus defined as a structural property of the memory. (The term catena was coined for this purpose by the designers of the BullGAMMA 60[fr] computer.) Block refers to the number of words transmitted to or from an input-output unit in response to a single input-output instruction. Block size is a structural property of an input-output unit; it may have been fixed by the design or left to be varied by the program. […]
Bemer, Robert William (1959), "A proposal for a generalized card code of 256 characters", Communications of the ACM, 2 (9): 19–23, doi:10.1145/368424.368435
Buchholz, Werner (1956-06-11). "7. The Shift Matrix". The Link System(PDF). IBM. pp.5–6. Stretch Memo No. 39G. Archived(PDF) from the original on 2017-04-04. Retrieved 2018-04-20. […] Most important, from the point of view of editing, will be the ability to handle any characters or digits, from 1 to 6 bits long. Figure 2 shows the Shift Matrix to be used to convert a 60-bit word, coming from Memory in parallel, into characters, or 'bytes' as we have called them, to be sent to the Adder serially. The 60 bits are dumped into magnetic cores on six different levels. Thus, if a 1 comes out of position 9, it appears in all six cores underneath. Pulsing any diagonal line will send the six bits stored along that line to the Adder. The Adder may accept all or only some of the bits. Assume that it is desired to operate on 4 bit decimal digits, starting at the right. The 0-diagonal is pulsed first, sending out the six bits 0 to 5, of which the Adder accepts only the first four (0–3). Bits 4 and 5 are ignored. Next, the 4 diagonal is pulsed. This sends out bits 4 to 9, of which the last two are again ignored, and so on. It is just as easy to use all six bits in alphanumeric work, or to handle bytes of only one bit for logical analysis, or to offset the bytes by any number of bits. All this can be done by pulling the appropriate shift diagonals. An analogous matrix arrangement is used to change from serial to parallel operation at the output of the adder. […]
3600 Computer System – Reference Manual(PDF). K. St. Paul, Minnesota, USA: Control Data Corporation (CDC). 1966-10-11 [1965]. 60021300. Archived(PDF) from the original on 2017-04-05. Retrieved 2018-04-20. Byte – A partition of a computer word. (NB. Discusses 12-bit, 24-bit and 48-bit bytes.)
ISO/IEC 2382-1: 1993, Information technology – Vocabulary – Part 1: Fundamental terms. 1993. byte A string that consists of a number of bits, treated as a unit, and usually representing a character or a part of a character. NOTES 1 The number of bits in a byte is fixed for a given data processing system. 2 The number of bits in a byte is usually 8.
Buchholz, Werner (1956-07-31). "5. Input-Output". Memory Word Length(PDF). IBM. p.2. Stretch Memo No. 40. Archived(PDF) from the original on 2017-04-04. Retrieved 2018-04-20. […] 60 is a multiple of 1, 2, 3, 4, 5, and 6. Hence bytes of length from 1 to 6 bits can be packed efficiently into a 60-bit word without having to split a byte between one word and the next. If longer bytes were needed, 60 bits would, of course, no longer be ideal. With present applications, 1, 4, and 6 bits are the really important cases. With 64-bit words, it would often be necessary to make some compromises, such as leaving 4 bits unused in a word when dealing with 6-bit bytes at the input and output. However, the LINK Computer can be equipped to edit out these gaps and to permit handling of bytes which are split between words. […]
Dooley, Louis G. (February 1995). "Byte: The Word". BYTE. Ocala, FL, USA. Archived from the original on 1996-12-20. […] The word byte was coined around 1956 to 1957 at MIT Lincoln Laboratories within a project called SAGE (the North American Air Defense System), which was jointly developed by Rand, Lincoln Labs, and IBM. In that era, computer memory structure was already defined in terms of word size. A word consisted of x number of bits; a bit represented a binary notational position in a word. Operations typically operated on all the bits in the full word. We coined the word byte to refer to a logical set of bits less than a full word size. At that time, it was not defined specifically as x bits but typically referred to as a set of 4 bits, as that was the size of most of our coded data items. Shortly afterward, I went on to other responsibilities that removed me from SAGE. After having spent many years in Asia, I returned to the U.S. and was bemused to find out that the word byte was being used in the new microcomputer technology to refer to the basic addressable memory unit. (NB. According to his son, Dooley wrote to him: "On good days, we would have the XD-1 up and running and all the programs doing the right thing, and we then had some time to just sit and talk idly, as we waited for the computer to finish doing its thing. On one such occasion, I coined the word "byte", they (Jules Schwartz and Dick Beeler) liked it, and we began using it amongst ourselves. The origin of the word was a need for referencing only a part of the word length of the computer, but a part larger than just one bit...Many programs had to access just a specific 4-bit segment of the full word...I wanted a name for this smaller segment of the fuller word. The word "bit" lead to "bite" (meaningfully less than the whole), but for a unique spelling, "i" could be "y", and thus the word "byte" was born.")
Origin of the term "byte", 1956, archived from the original on 2017-04-10, retrieved 2018-04-20, A question-and-answer session at an ACM conference on the history of programming languages included this exchange: JOHN GOODENOUGH: You mentioned that the term "byte" is used in JOVIAL. Where did the term come from? JULES SCHWARTZ (inventor of JOVIAL): As I recall, the AN/FSQ-31, a totally different computer than the 709, was byte oriented. I don't recall for sure, but I'm reasonably certain the description of that computer included the word "byte," and we used it. FRED BROOKS: May I speak to that? Werner Buchholz coined the word as part of the definition of STRETCH, and the AN/FSQ-31 picked it up from STRETCH, but Werner is very definitely the author of that word. SCHWARTZ: That's right. Thank you.
Bemer, Robert William (2000-08-08). "Why is a byte 8 bits? Or is it?". Computer History Vignettes. Archived from the original on 2017-04-03. Retrieved 2018-04-20. […] I came to work for IBM, and saw all the confusion caused by the 64-character limitation. Especially when we started to think about word processing, which would require both upper and lower case. […] I even made a proposal (in view of STRETCH, the very first computer I know of with an 8-bit byte) that would extend the number of punch card character codes to 256 […]. So some folks started thinking about 7-bit characters, but this was ridiculous. With IBM's STRETCH computer as background, handling 64-character words divisible into groups of 8 (I designed the character set for it, under the guidance of Dr. Werner Buchholz, the man who DID coin the term 'byte' for an 8-bit grouping). […] It seemed reasonable to make a universal 8-bit character set, handling up to 256. In those days my mantra was 'powers of 2 are magic'. And so the group I headed developed and justified such a proposal […] The IBM 360 used 8-bit characters, although not ASCII directly. Thus Buchholz's 'byte' caught on everywhere. I myself did not like the name for many reasons. The design had 8 bits moving around in parallel. But then came a new IBM part, with 9 bits for self-checking, both inside the CPU and in the tape drives. I exposed this 9-bit byte to the press in 1973. But long before that, when I headed software operations for Cie. Bull in France in 1965–66, I insisted that 'byte' be deprecated in favor of 'octet'. […] It is justified by new communications methods that can carry 16, 32, 64, and even 128 bits in parallel. But some foolish people now refer to a '16-bit byte' because of this parallel transfer, which is visible in the UNICODE set. I'm not sure, but maybe this should be called a 'hextet'. […]