“કેમ છો?”ને સમજીએ - ચીરાગ પટેલ ઑક્ટોબર 09, 2009
બીજા પગલા તરીકે, ચાલો “કેમ છો?” પ્રૉગ્રામને સમજીએ. “કેમ છો?”ની દરેક લીટીને હું આજે ક્રમ આપીને સમજાવીશ.
સહુપ્રથમ મુળ સુચીને અગ્રક્રમાંક સાથે ફરીથી જુઓ. 1 - // my first ever “kem chho?” program in c++ 2 - #include <iostream> 3 - 4 - int main( int argc, char* argv[] ) 5 - { 6 - std::cout << “kem chho?\n”; 7 - return 0; 8 - }
હવે, ક્રમવાર દરેક લીટીને સમજીએ.
1 - // my first ever “kem chho?” program in c++ આ લીટીની શરુઆત “//”થી થાય છે. ત્યારબાદ નવી લીટી ના આવે ત્યાં સુધી લખેલાં શબ્દોને કૉમેન્ટ (comment) કહેવાય છે, જે આ પ્રૉગ્રામને વાંચનાર કે લખનારને સમજુતી આપવા માટે હોય છે. આવી કૉમેન્ટનો પ્રૉગ્રામના પરીણામ(output)માં કોઈ ફાળો નથી હોતો. એક કરતાં વધુ લીટીની કૉમેન્ટ માટે શરુઆત “/*”થી કરવાની હોય છે. ત્યારબાદ જે શબ્દો લખાય એના અન્તે “*/” લખવાથી આખી કૉમેન્ટ પુરી થાય છે. જેમ કે,
/* This is a multi-line comment example. Did you get the point now? */
આ જ કૉમેન્ટને પ્રથમ પ્રકારે લખવી હોય તો નીચે મુજબ લખી શકાય.
// This is a multi-line comment example. // Did you get the point now?
એક પાયાનો તફાવત સમજાવુ. “//” પ્રકારની કૉમેન્ટની ડાબી બાજુ જે લખાય છે એનો પ્રૉગ્રામના પરીણામમાં ફાળો ગણાય છે. જ્યારે, “/*…*/” પ્રકારની કૉમેન્ટમાં માત્ર અને માત્ર “/* અને “*/” વચ્ચેના શબ્દો સીવાયના શબ્દોનો પરીણામમાં ફાળો હોય છે! જેમ જેમ આપણે મહાવરો કરતા જઈશું તેમ તેમ આ ભેદ વધુ સ્પષ્ટ થશે.
2 - #include <iostream> આપણે ઈન્ગ્લીશનો કોઈ શબ્દ સમજવો હોય તો ઈન્ગ્લીશ કોશ જોવો પડે અને કોઈ સ્પેનીશ શબ્દ જાણવો હોય તો સ્પેનીશ કોશ જોવો પડે. એવી રીતે 6ઠ્ઠી લીટી પર જે લખ્યુ છે એને યોગ્ય રીતે સમજવા માટે આપણા પ્રૉગ્રામે 2જી લીટીમા લખેલી લાયબ્રેરી(library)નો સન્દર્ભ ટાંકવો પડે. અહીં આપણે iostream નામની લાયબ્રેરીને ટાંકી રહ્યાં છીએ.
3 - આ લીટીને ઈરાદાપુર્વક ખાલી છોડવામાં આવી છે. જો કે એ જરુરી ન્હોતુ, પણ પ્રૉગ્રામ સુવાચ્ય બને એ માટે ખાલી છોડી છે.
4 - int main( int argc, char* argv[] ) અહીં main એ આપણા ફન્ક્શન(function)નું નામ છે. દરેક સી/સી++ પ્રૉગ્રામમાં મેઈન ફન્ક્શન હોવું જ જોઈએ અને એ પ્રૉગ્રામની શરુઆત માટેનો દરવાજો છે. જે તે ઑપરેટીન્ગ સીસ્ટમ દરેક ઍપ્લીકેશનના મેઈન ફન્ક્શનને જ સહુપ્રથમ દોડાવે છે.
અહીં મેઈનને બે પ્રકારના પ્રસાદનો ભોગ ચઢાવાયો છે: int argc અને char* argv[]. એમને ભવીષ્યમાં સમજીશું. મેઈન આપણને જે આશીર્વાદ આપે છે એનો પ્રકાર int છે, જે પણ આપણે પછી સમજીશું. (મેઈન એવા ભગવાન છે જે પહેલાં આશીર્વાદ આપે છે અને ભોગ પછી લે છે - માત્ર દેખાડવા માટે જ. હકીકતે તો એ પણ આપણા ભગવાનોની જેમ જ ભોગ પહેલા લે છે અને આશીર્વાદ છેલ્લે આપે છે.)
5 - { કોઈ પણ ફન્ક્શનની શરુઆત આવા આરમ્ભ કૌંસ(open brace)થી કરવી પડે છે.
6 - std::cout << “kem chho?\n”; અહીં આપણે iostream લાયબ્રેરીના std નામના પ્રકરણ(namespace)નું cout (સીઆઉટ) નામનું ફન્ક્શન બોલાવીએ છીએ. આપણે “<<” વડે “kem chho?\n” નામનું વાક્ય એને આપીએ છીએ. એનું પરીણામ cout કેવી રીતે દર્શાવે છે એ આપણે ફરી ક્યારેક સમજીશું. વળી, “\n” શું છે એ પણ આપણે ફરી સમજીશું.
7 - return 0; આપણું ફન્ક્શન 0 રુપી પરીણામ આપી રહ્યું છે. આ ફન્ક્શન જેણે બોલાવ્યું હોય એને આ રકમ આપવામાં આવે છે. આપણું ફન્ક્શન main હોવાથી આ પરીણામ ઑપરેટીન્ગ સીસ્ટમને આપવામાં આવે છે. તમે જો 0 સીવાયની કોઈ રકમ પાછી વાળો તો ઑ.એસ. આપણાં પ્રૉગ્રામની અલગ રીતે સરભરા કરી શકે છે! એનાં થોડા પ્રયોગો કરો અને જુઓ કે કાંઈ ફેર પડે છે? 0 ને બદલે -1 કે 1 કે 1000 રીટર્ન કરી જુઓ.
8 - } કોઈ પણ ફન્ક્શનનો અન્ત આવા અન્ત્ય કૌંસ(close brace)થી કરવો પડે છે.
સી++ ને અડપલું - ચીરાગ પટેલ ઑક્ટોબર 06, 2009
ચાલો, આજે એક નવી શરુઆત કરીએ. કમ્પ્યુટરની ભાષા શીખવી ગમશે? (ના ગમે તો પણ હું તો શીખવાડીને જ રહીશ!!!) મને પોતાને આવડતી C (સી) કે C++ (સી પ્લસ પ્લસ)ને નામે જાણીતી ભાષાઓને શીખવાનો પ્રારમ્ભ કરીએ.
તમને ‘સી’ કે ‘સી++”નો ઈતીહાસ આ લીન્ક પર મળી રહેશે: http://en.wikipedia.org/wiki/C%2B%2B. એટલે પીષ્ટપેષણ કર્યા વગર વ્યવહારુ માર્ગે શીખવાના શ્રીગણેશ જ કરી દઈએ તો કેવું? વળી, ગુગલ મહારાજ ઈંગ્લીશમાં શીખવાડતી અનેક વેબસાઈટરુપી ગંગાને તમારી કમ્પ્યુટરરુપી કથરોટમાં પ્રગટ કરી આપશે એટલે વધુ પન્ચાતમાં નથી પડવું.
જેમની પાસે લીનક્સ કે યુનીક્સ નામની ઑપરેટીંગ સીસ્ટમ છે તેઓ શેલ પર જઈને જોઈલે કે તેમની સીસ્ટમમાં gcc કે g++ નામનો કમ્પાઈલર કમાંડ ચાલે છે? વીન્ડોઝ ઑ.એસ. વાપરનારા માટે મફતીયા કમ્પાઈલર અહીથી ડાઉનલૉડ કરીને ઈન્સ્ટૉલ કરી દો: http://www.microsoft.com/express/vc/. આ પ્રૉગ્રામ તમારી સીસ્ટમમાં ઈન્સ્ટૉલ થાય ત્યાં સુધી ધીરજ ધરજો (બધી બહુ…). આ કાર્યરથને ગોઠવવા માટે એ જે વીકલ્પ પસન્દ કરીને બતાડે એ સ્વીકારી લો!
શરુઆત કરીએ “કેમ છો?” કાર્યક્રમથી (hello world program).
1) વીન્ડોઝ વપરાશકર્તા માટે: - Visual C++ Express નામના કાર્યરથને શરુ કરો (થોડી વાર પહેલાં જ તમે એને તમારા કમ્પ્યુટરમાં ગોઠવ્યો છે!). - File નામના મેન્યુમાંથી New વીકલ્પ પર ક્લીક કરી Project… પર ક્લીક કરો. - એમાં ડાબી બાજુ Project types: છે એમાંથી General પસન્દ કરો. - જમણી બાજુ દેખાતાં વીકલ્પોમાંથી Empty Project પસન્દ કરી Name: માં કોઈ નામ (ધારો કે kemchho) આપી નીચેનું OK બટન દબાવો. આ આપણું પ્રૉજેક્ટ સૉલ્યુશન થયું. - ત્યારબાદ જે વીન્ડો ખુલે એમાં Source Files પર માઉસનું જમણું બટન (તમે ડાબેરી હો તો ડાબુ બટન) ક્લીક કરો એટલે જે તરતું મેન્યુ આવશે એમાં Add પર ક્લીક કરો અને New Item.. પસન્દ કરો. - જમણી બાજુથી C++ File (.cpp) પસન્દ કરો અને કોઈ નામ આપો (Name: ની બાજુમાં). (ધારો કે main.cpp). આ આપણી ફાઈલ થઈ. નીચે દેખાતાં Add બટન પર ક્લીક કરો. - હવે તમને એક મોટા વીન્ડોમાં (જમણી બાજુ) main.cpp નામનું મથાળુ દેખાશે. આ આપણી ફાઈલ છે. એમાં નીચે મુજબનો પ્રોગ્રામ લખો.
// my first ever “kem chho?” program in c++ #include <iostream>
int main( int argc, char* argv[] ) { std::cout << “kem chho?\n”; return 0; }
- હવે છેક ઉપરના મેન્યુબારમાંથી Build પસન્દ કરો. એટલે તમને જે દેખાય એમાંથી Build Solution પસન્દ કરો. હવે તમને છેક નીચેની બારીમાં કાંઈક થતું લાગશે. એમાં નીચે મુજબ જેવું લખાણ દેખાશે. (એક વાત ધ્યાનમાં આવી? Build Solution ની બાજુમાં F7 એવું લખેલું છે. એનો મતલબ એવો કે તમારા કીબૉર્ડ પરથી F7 નામની ચાવી દબાવો તો પણ આપણી કાર્યસુચીને બનાવવામાં આવશે.)
—— Build started: Project: kemchho, Configuration: Debug Win32 —— Compiling… main.cpp Linking… LINK : C:\Documents and Settings\cpatel\My Documents\Visual Studio 2008\Projects\kemchho\Debug\kemchho.exe not found or not built by the last incremental link; performing full link Embedding manifest… Build log was saved at “file://c:\Documents and Settings\cpatel\My Documents\Visual Studio 2008\Projects\kemchho\kemchho\Debug\BuildLog.htm” kemchho - 0 error(s), 0 warning(s) ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== - હવે છે ખરી મજા… છેક ઉપરના મેન્યુબારમાંથી Debug પસન્દ કરો અને એમાંથી Start without debugging પસન્દ કરો. - એક કાળી બારી દેખાઈ? એમાં “kem chho?” વંચાયુ? - હાર્દીક અભીનન્દન! સી++ શીખવામાં પહેલુ પગલુ તમે ભરી લીધું.
2) લીનક્સ/યુનીક્સ માટે:
- તમારા ગમતા શેલ પર જઈને કે ગમતા એડીટર વડે kemchho.cpp નામની ફાઈલ બનાવી ઉપર મુજબની કાર્યસુચી લખી દો. - ત્યારબાદ ફાઈલ જ્યાં છે એ જગ્યે નીચેનો કમાન્ડ આપો:
[cpatel@brahmand ~] # g++ kemchho.cpp -o kemchho
- હવે અહીં તમે જુઓ કે kemchho નામની પ્રૉગ્રામ ફાઈલ બની છે? - આ ફાઈલ ઈક્ઝીક્યુટ કરો.
[cpatel@brahmand ~]./kemchho
- “kem chho?” વંચાયુ? - હાર્દીક અભીનન્દન! સી++ શીખવામાં પહેલુ પગલુ તમે ભરી લીધું.
દ્વીઅંકી ગણીત - 2 ચીરાગ પટેલ જુલાઈ 29, 2008
આજે આપણે થોડીક તાર્કીક ગણતરીઓ (logical operations) જોઈશું. શરુઆત કરીએ ઉદાહરણથી. નીચેનું વાક્ય વાંચો અને એમાં જોડાતાં પ્રત્યયની એની સત્યતા પર શું અસર થાય એ વીચારો.
“ક્લાર્ક કેંટ સુપરમૅન છે અથવા પીટર પાર્કર સુપરમૅન છે.”
આ વાક્ય એક સંકુલ વાક્ય છે જે “અથવા” પ્રત્યતથી જોડાય છે. જો “ક્લાર્ક કેંટ સુપરમૅન છે” એ સાચું હોય તો પણ આખું વાક્ય સાચું અને “પીટર પાર્કર સુપરમૅન છે” એ સાચું હોય તો પણ આખું વાક્ય સાચું ઠરે. બન્ને ઉપવાક્યો ખોટાં હોય તો જ આખું વાક્ય ખોટું ઠરે. ગાણીતીક રીતે આ બાબત દર્શાવવા માટે સાતત્યતા કોષ્ટક (Truth Table) વપરાય છે. જેમ કે, ઉપરના ઉદાહરણમાં:
A: ક્લાર્ક કેંટ સુપરમૅન છે. B: પીટર પાર્કર સુપરમૅન છે. => A OR B એ ઉદાહરણ સંકુલ વાક્ય થયું. સાચું દર્શાવવા T અને ખોટું દર્શાવવા F વાપરીએ અને શક્યતાઓનો કોષ્ટક બનાવીએ.
. A . B . A OR B . T . T . . T . T . F . . T . F . T . . T . F . F . . F
એ જ રીતે “અથવા” ને બદલે “અને” પ્રત્યય વાપરીએ તો બન્ને ઉપવાક્યો સાચા હોય તો અને તો જ આખું વાક્ય સાચું ઠરે (પત્ની કે પ્રેમીકા જો “અથવા” શબ્દ વાપરીને વીકલ્પ આપે તો પણ તે શેને પ્રાધાન્ય આપે છે એ જાણી લેવું. નહીંતર બન્ને વીકલ્પો ખોટાં ઠરશે!). એ માટે કોષ્ટક બનાવીએ.
. A . B . A AND B . T . T .. T . T . F .. F . F . T .. F . F . F .. F
ઈલેક્ટ્રૉનીક્સમાં ઈલેક્ટ્રૉનનાં પ્રવાહને આવાં કોષ્ટક મુજબ નીયંત્રીત કરવા માટે લૉજીક ગેટ (Logic Gate) તરીકે ઓળખાતાં કમ્પોનંટ વપરાય છે. આપણે જ્યાં T વાપર્યાં ત્યાં 1 અને જ્યાં F વાપર્યાં ત્યાં 0 ગણીને સમજીએ (1 એટલે પ્રવાહ વહેવો, અને 0 એટલે પ્રવાહ બન્ધ થવો). નીચેની આકૃતી જુઓ.
input A —>—|———–|___ output input B —>—|– gate -|
જો ઉપરોક્ત આકૃતીમાં ઑર ગેટ (OR gate) કે ઍંડ ગેટ (AND gate) વાપરીએ તો, . in A . in B . out (OR) out (AND) . 1 ….. 1 …… 1 …………. 1 . 1 ….. 0 …… 1 …………. 0 . 0 ….. 1 …… 1 …………. 0 . 0 ….. 0 …… 0 …………. 0
અહીં માત્ર એક બીટનો જ ઈનપુટ અને આઉટપુટ આપણે જોયો. કમ્પ્યુટર જો 32બીટનું હોય તો એકસાથે 32 બીટ પર લૉજીકલ ઑપરેશન થાય, અને એ મુજબ આઉટપુટા આવે. ઘણીવાર ઑર માટે ‘+’ અથવા ‘|’ નું ચીહ્ન વપરાય છે. ઍંડ માટે ‘.’ અથવા ‘&’નું ચીહ્ન વપરાય છે. 8 બીટનું એક લૉજીકલ ઑપરેશન જોઈએ.
0×75 & 0xF0 = ? (8-4-2-1 પ્રમાણે આ સંખ્યા કેવી રીતે દર્શાવવી એ યાદ છે ને?)
0×75 = 0 1 1 1 0 1 0 1 0xF0 = 1 1 1 1 0 0 0 0 ================= & —–> 0 1 1 1 0 0 0 0 => 0×70
આ પ્રમાણે 8 બીટનાં થોડાં લૉજીકલ ઑપરેશન કરો: 1) 0xBE | 0×91 = ? 2) 0×39 & 0×15 = ?
દ્વીઅંકી ગણીત - 1 - ચીરાગ પટેલ જુન 27, 2008
આજે આપણે કમ્પ્યુટરની કારભારને સમજવા એક ડગલું ઉપર ચઢીએ. આપણે દ્વીઅંકીના એકડા-બગડા શીખી લીધાં (કે એકડાં-મીંડાં) છે, એટલે હવે એમની ગાણીતીક પ્રક્રીયાઓ સમજીએ.
જેમ આપણે પહેલાં ધોરણમાં એકમના સ્થાન માટે સરવાળા-બાદબાકી શીખ્યાં હતાં એમ જ આજે સરવાળા-બાદબાકી દ્વીઅંકી પધ્ધતીમાં શીખીશું (ફરીથી, પહેલું ધોરણ?). તો, આ જુઓ.
0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 1
આવું કેવી રીતે થાય? માળું, 1માં 1 ઉમેરીએ તો બમણાં ના થાય વળી? નીચેની આકૃતી જુઓ.
વીજસ્ત્રોત —– સ્વીચ 1 —– લૅમ્પ |_______ સ્વીચ 2 ____|
અહીં, એક વીજસ્ત્રોતમાંથી બે વાયર દ્વારા એક લૅમ્પ જોડાયેલો છે એવું વીચારો. દરેક વાયરમાં વચ્ચે એક-એક સ્વીચ છે એવું જુઓ. હવે, સ્વીચ ચાલુ હોય તો 1 લખો અને સ્વીચ બન્ધ હોય તો 0 લખો. એ જ પ્રમાણે, લૅમ્પ પ્રકાશીત થાય તો 1 લખો અને લૅમ્પ બન્ધ રહે તો 0 લખો. વળી, વીજળીનો ગુણધર્મ એવો છે કે, ઉપરની આકૃતીમાં જણાવેલ જોડાણને આપણે “+”ની પ્રક્રીયા તરીકે સમજી શકીએ. અહીં, વીજળીનો કરંટ વહેંચાય છે અને વૉલ્ટૅજ સમાન રહે છે. લૅમ્પને ચાલુ થવા માટે પુરતાં વૉલ્ટેજની આવશ્યક્તા હોય છે.
તો, જો બન્ને સ્વીચ બન્ધ સ્થીતીમાં હોય તો, લૅમ્પ બન્ધ રહેશે, અને કોઈ પણ એક કે બન્ને સ્વીચ ચાલુ કરતાં લૅમ્પ સળગશે. હવે, આ અવલોકનને દ્વીઅંકી સરવાળાનાં કોઠા સાથે સરખાવો.
હવે, બાદબાકી જોઈએ.
0 - 0 = 0 1 - 0 = 1 1 - 1 = 0 0 - 1 = 1
છેલ્લું વીધાન તો કાંઈ જ સમજમાં ના આવે એવું લાગે છે! મને પણ એવું જ લાગે છે. પહેલાં ત્રણ વીધાન તો સરળતાથી સમજી શકાય છે. પણ, ચોથાં વીધાનમાં એવું વીચારો કે, જવાબ “-1″ આવે છે અને એનો ઋણભાર કોઈક જગ્યે યાદ રાખવામાં આવે છે. આ બાબત સરળતાથી સમજવા માટે મને જો યોગ્ય ઉદાહરણ મળી આવે તો સમજાવીશ! પણ એવું માનો કે આપણે 2ની વદ્દી લીધી (હવામાંથી?) અને એટલે 0 - 1 ને બદલે 2 - 1 કર્યું.
આજ પુરતું આટલું રાખીએ. પછી વધુ સ્થાનના સરવાળા - બાદબાકી સમજીશું.
પૉર્ટપુરાણ - ચીરાગ પટેલ May 30, 2008
કમ્પ્યુટરમાં તમે ઘણાં બધાં પેરીફેરલ ડીવાઈસ (Peripheral device) લાગેલાં જુઓ છો, જેમ કે કીબૉર્ડ, માઉસ, મોનીટર, વગેરે. તથા ટુંકા/લામ્બા કૅબલ(cable)થી ઈથરનેટ રાઉટર (Ethernet router), યુએસબી(USB - Universal Serial Bus) વેબ-કૅમ (Web Cam) વગેરે જોડાયેલાં હોય છે. આ બધાં લટકણીયાં જુદી-જુદી જાતનાં કૅબલથી કમ્પ્યુટરના જાત-જાતનાં પૉર્ટ (Port) સાથે જોડાય છે. કૅબલ અને પૉર્ટને મુશ્કેટાટ બાન્ધતાં કનેક્ટર(connector)માંથી જે ઉપસેલા ભાગનું હોય એને મેઈલ(male) કનેક્ટર અને જે ભાગ અન્દર તરફ દબાયેલો હોય એને ફીમેઈલ(female) કનેક્ટર કહે છે (દેખીતા કારણસર જ… ).
થોડાંક કનેક્ટરનાં પ્રકાર અને ઉપયોગ જોઈએ.
3.5એમએમ(3.5mm) - સ્પીકર(speaker), માઈક્રોફોન(microphone), લાઈન ઈન/આઉટ(Line In/Out) માટે બીએનસી(BNC - Beyonnet Network Connector) - કો-એક્સ્યલ(co-axial) કૅબલ માટે ડીવીઆઈ-ડી ડ્યુઅલ લીંક(DVI-D Dual Link) - હૅંડીકૅમ(Handycam) કે ડીજીટલ કૅમેરા(Digital Camera) માટે (એને ફાયર વાયર(Fire Wire - IEEE 1492) પણ કહે છે) એચડીએમઆઈ(HDMI) - હાઈ-ડેફીનીશન(Hi-Definition) કનેક્ટર (હાઈ-ડેફ ડીવીડી પ્લેયર(HD DVD Player) જેવા) એચડી15(HD15) - મોટે ભાગે મોનીટર માટે આરસીએ(RCA) - આરજીબી(Red-Green-Blue) વીડીયોવાળા સાધન માટે (ડીવીડી પ્લેયર જેવા) એસ વીડીયો(S-Video) (4-પીન ડીન(4-pin DIN)) - ડીવીડી પ્લેયરમાં વધારે ગુણવત્તાવાળું દ્રશ્ય મેળવવા ટૉસલીંક(TOSLINK) - ઑપ્ટીકલ લીંક(Optical Link) છે જે ડીજીટલ ઑડીયો(Audio) માટે વપરાય છે. એફ ટાઈપ(F -Type) - ટીવી(TV), કૅબલ કનેકશન(Cable TV connection) માટે (F type??? really? ) બનાના પ્લગ(Banana Plug) - એમ્પ્લીફાયર(Amplifier)થી સ્પીકરના કૅબલ માટે સ્પીકર પીન(Speaker Pin) - સ્પીકર માટે એક્સએલઆર(XLR) - ધન્ધાકીય ઑડીયો ગુણવત્તાવાળાં સાધનોમાં ડીબી9(DB9) - આરએસ-232(RS-232) સીરીયલ(Serial) પૉર્ટ માટે ડીબી15(DB15) - ખાસ ઑડીયો સાધનોમાં આરજે-45(RJ-45) - ઈથરનેટ (નેટવર્ક(Network)) પૉર્ટ માટે આરજે-11(RJ-11) - ટેલીફોનને પીએસટીન(PSTN - Public Switch Telephone Network) લાઈન સાથે જોડવા માટે કમ્પોઝીટ વીડીયો(Composite Video) - ઉચ્ચ ગુણવત્તાવાળું દ્રશ્ય મેળવવા (ડીવીડી પ્લેયર માટે) આઈ ટ્રીપલ-ઈ - 488(IEEE 488) - ટેસ્ટીંગ(Testing) અને મેઝરમેંટ(Measurement) માટેના સાધનોમાં ઇંફીનીબૅંડ(Infiniband) - (ઈથરનેટનો પીત્રાઈ ભાઈ છે) ઈંફીનીબૅંડ સાધનો માટે સેંટ્રોનીક્સ(Centronics) - સેંટ્રોનીક્સ કમ્પનીના પ્લાસ્ટીક આવરણવાળા સ્કઝી(SCSI - Small Computer System Interconnect) સાઘનો માટે યુએસબી(USB - Universal Serial Bus) - આધુનીક સીરીયલ કનેક્શન માટે પાવર કનેક્ટર(Power connector) - ત્રણ પીનના કમ્પ્યુટર પ્લગ માટે જે વીજળીનો પુરવઠો પુરો પાડે છે. પીએસ/2(PS/2) - કીબૉર્ડ/માઉસ માટે
કમ્પ્યુટરની અન્દર પણ વીવીધ કનેક્ટર હોય છે જે હાર્ડ ડીસ્ક/ડીવીડી/સીડી-રૉમના ડૅટા માટે અને પાવર માટે વપરાય છે.
બઝારમાં ઉપલબ્ધ સાધનો અને એમના માટેના કનેક્ટરની યાદી કરવા જઈએ તો ગાંડા થઈ જવાય એટલું વૈવીધ્ય છે (સ્ત્રીઓનાં મેક-અપનાં સાધનોની જેમ જ સ્તો વળી…).
ફાઈલ - ચીરાગ પટેલ Apr 29, 2008
ફાઈલ (File) નામ કાને પડે એટલે તરત જ નજર સામે જાડા પુંઠાના કવરવાળી લામ્બી-પહોળી આકૃતી ઝબુકે. જનરેશન - ઝ (generation Z)ને તો કમ્પ્યુટરની ફાઈલ જ નજરે પડતી હશે! (સરકારી બાબુઓને તો ફાઈલ નામ સામ્ભળતાં જ ઉંઘ આવતી હશે!)
આજે આપણે વાત કરીશું ડીજીટલ ફાઈલ વીશે. આપણે બધાં માઈક્રોસોફ્ટ વર્ડ કે એક્સેલ સ્પ્રેડશીટ, નોટપૅડ કે વર્ડપૅડ, વગેરે ઍપ્લીકેશન વાપરતાં હોઈએ છીએ. જ્યારે, આ ઍપ્લીકેશન આપણું લખાણ સંગ્રહે (save) છે, ત્યારે એ ફાઈલ સ્વરુપે સંગ્રહે છે. ફાઈલ એ બાઈટના જથ્થાનું એક એકમ છે. હાર્ડ-ડ્રાઈવ કે ડીવીડી કે પેન-ડ્રાઈવમાં આ બધી ફાઈલો બાઈટનાં સંગ્રહ તરીકે હોય છે.
પણ, આ બાઈટરુપી માહીતીને સંગ્રહવામાં જે-તે ઍપ્લીકેશન બહુ મહત્વનો ભાગ ભજવે છે. MP3 ફાઈલને તમે વર્ડપૅડના લખાણની ફાઈલ તરીકે ખોલવા જાઓ તો કાંઈક ચીત્ર-વીચીત્ર લખાણ નજરે પડે. (ભઈ, આપણને તો કમ્પ્યુટર જ ચીત્ર-વીચીત્ર લાગે છે.) અને, એ જ પ્રમાણે, વર્ડપૅડની ફાઈલને મીડીયાપ્લેયરમાં પ્લૅ કરો તો એ એરર (error) બતાવશે. આનું એક કારણ છે ઍપ્લીકેશન! જ્યારે આપણે વર્ડપૅડમાં લખાણ લખીએ છીએ ત્યારે વર્ડપૅડ એ લખાણની સાથે સાથે એનું ફોર્મેટ (format) (ફોંટની માહીતી, લખાણનો વર્ગ, લખનારની માહીતી, વગેરે) પણ સ્ટોર કરે છે. વળી, અમુક ઍપ્લીકેશન માહીતીને કોમ્પ્રેસ (compress) કરીને કે એનક્રીપ્ટ (encrypt) કરીને સંગ્રહીત કરે છે. એટલે, જો કોઈ ઍપ્લીકેશન આ ફોર્મેટ ઉકેલી શકે તો એ ફાઈલમાં શું છે એ જાણી શકે. (આ બાબતને ડી.એન.એ. માટેના જીનોમ મૅપીંગ (genome mapping) પ્રોજેક્ટ સાથે સરખાવો.) (સ્ત્રીના મગજનું ફોર્મેટ કોઈ ઉકેલી શકશે ખરું???)
હવે, ફાઈલ કેવી રીતે સંગ્રહીત થાય છે, એ જે-તે ઑપરેટીંગ સીસ્ટમ (operating system) પર આધાર રાખે છે. આ બાબતને ફાઈલ સીસ્ટમ ફોર્મેટ (file system) કહે છે. વીંડોઝ (Windows) માટે ફૅટ (FAT12, FAT16, FAT32), એન.ટી.એફ.એસ. (NTFS - New Technology File System), એચ.પી.એફ.એસ. (HPFS - High Performance File System), લીનક્સ (Linux) માટે એક્સ્ટ* (ext2, ext3) જેવી ફાઈલ સીસ્ટમ છે. ડૅટાબૅઝ સર્વરને પણ પોતાની ફાઈલ સીસ્ટમ હોય છે. વધુ માહીતી: http://en.wikipedia.org/wiki/List_of_file_systems
ડીજીટલ રુપાંતરણ - ચીરાગ પટેલ Mar 22, 2008
આજે એક સીધી સાદી, પરંતુ એકદમ પાયાની બાબત પ્રત્યે મારું ધ્યાન ખેંચાયું. આપણે કમ્પ્યુટરનો આટલો બહોળો ઉપયોગ કરીએ છીએ, એમાં માહીતીનું ડીજીટાઈઝેશન (digitization) ઘણો જ મહત્વનો ભાગ ભજવે છે.
કોઈ પણ પ્રકારની માહીતી - ધ્વની, દ્રશ્ય કે કોઈ પણ પ્રકારનાં સીગ્નલ (signal) -ને ચોક્કસ સંખ્યા વડે દર્શાવવી એટલે ડીજીટાઈઝેશન. આ પધ્ધતીને સેમ્પલીંગ (sampaling) પણ કહે છે. જેમ કે, કમ્પ્યુટરના માઈક્રોફોન પર આપણે બોલીએ તો એનું ડીજીટલ સ્વરુપ કમ્પ્યુટરમાં રેકોર્ડ થાય છે. ડીવીડીમાં ચલચીત્રનું અંકન, કોઈ પત્રનું સ્કેનીંગ, કે તાપમાન, દબાણ, પ્રકાશ વગેરેની માહીતીને પણ ડીજીટલમાં ફેરવી શકાય છે. એ જ પ્રમાણે, ડીજીટલ માહીતીને પાછી જે તે પ્રકારનાં સીગ્નલમાં ફેરવી શકાય છે. આ પ્રક્રીયા માટે એનેલોગ-ટુ-ડીજીટલ (analog-to-digital) કે ડીજીટલ-ટુ-એનેલોગ (digital-to-analog) એવો શબ્દપ્રયોગ થાય છે. AtoDને એંકોડીંગ (encoding) અને DtoAને ડીકોડીંગ (decoding) પણ કહે છે.
આ પ્રક્રીયા સમજવા માટે એક ઉદાહરણ જોઈએ. અવાજનાં મોજાંને એક સ્થીતીસ્થાપક દોરી સ્વરુપે લો. એક ઉદ્ગમ સ્થાન કલ્પી લો, ત્યાંથી અમુક અંતરે એક રેકોર્ડર મુકેલું છે ત્યાં સુધી આ દોરી બાન્ધેલી છે. રેકોર્ડર દર એક સેકંડે એના તરફની દોરીનો છેડો કેટલો ઉંચે કે નીચે જાય છે, એની માપણી કરે છે. હવે, ઉદ્ગમ સ્થાનેથી કોઈ વ્યક્તી એ તરફનાં દોરીના છેડાને ઉપર-નીચે ઝુલાવે છે. આ ઝોલ ધીરે રહીને અમુક સમયે રેકોર્ડર સુધી પહોંચે છે. રેકોર્ડર દર સેકન્ડે જે માપ લે છે, એ ધારો કે આ મુજબ છે :
સેકંડ — 1 —– 2 —— 3 ઝોલ — 5cm - 2cm - 3cm
હવે, રેકોર્ડર આ માપને બાયનરી સ્વરુપે સંગ્રહે છે એમ વીચારો. આ પ્રક્રીયાને એનેલોગ-ટુ-ડીજીટલ કહેવાય છે. એનાથી વીરુધ્ધ પ્રક્રીયા (ડીજીટલ-ટુ-બાયનરી)માં રેકોર્ડર એના તરફની દોરીને જે તે સેકન્ડે અમુક સેંટીમીટરનો ઝોલ આપે છે.
હવે, રેકોર્ડર જેટલી વધુ ઝડપથી આ માહીતીને માપે એટલી વધુ ચોકસાઈ મળે. એક સેકંડમાં થતું આવું સેમ્પલીંગ એ સેમ્પલીંગ ફ્રીક્વંસી (sampling frequency) તરીકે ઓળખાય છે. રેકોર્ડરની સેમ્પલીંગ ફ્રીક્વંસી જેમ વધારે એમ મુળ માહીતીને વધુ ચોકસાઈથી ફરી રજુ કરી શકાય. વળી, રેકોર્ડર કેટલું ઝીણું માપી શકે છે, એ પણ માહીતીને સંગ્રહવામાં ભાગ ભજવે છે. એનેલોગ માહીતીના સીગ્નલનું કદ મહત્તમ કેટલુ હશે એ મુજબ કેટલા બીટનું સેમ્પલીંગ થાય છે, એ જુઓ. જેમ કે, એક થર્મોમીટર મહત્તમ 100 સેલ્સીયસ માપતું હોય અને જો આ માહીતી 8-બીટ તરીકે સંગ્રહીત થતી હોય, તો સામે આ જ થર્મોમીટરને 16-બીટની માહીતી તરીકે સંગ્રહવામાં આવે તો 1 ડીગ્રીના વધારે ચોક્કસ સ્થાન સુધીનું માપ મળી શકે.
આપણે એમપી3 (MP3)ફાઈલથી પરીચીત છીએ. એમાં જુદાં-જુદાં બીટરેઈટ(bit rate)ને સરખાવી જુઓ. 196 kbits/s અને 256 kbits/s બીટરેઈટ વચ્ચેનો તફાવત સમજો. પ્રથમમાં 196000 બીટ્સ એક સેકંડમાં સંગહીત થાય છે, જ્યારે બીજામાં 256000 બીટ્સ એક સેકંડમાં સંગ્રહીત થાય છે. વળી, સેમ્પલીંગ ફ્રીક્વંસી 44.1 KHz અને 48 KHz સરખાવો. પ્રથમમાં એક સેકંડમાં 44100 વખત સેમ્પલીંગ થાય છે, જ્યારે બીજામાં 48000 વખત થાય છે. હવે, આ સેમ્પલીંગ 8-બીટનું એક એવું થાય અને 16-બીટનું એક એવું થાય, તો એ બે વચ્ચેનો તફાવત સમજો.
કમ્પ્યુટર મોનીટર - ચીરાગ પટેલ Feb 25, 2008
કમ્પ્યુટર શબ્દ બોલાય એટલે તરત જ આપણા મગજમાં એના મોનીટર (monitor) કે ડીસ્પ્લે ટેર્મીનલ (display terminal) નજર સમક્ષ આવે. (આવે જ ને ભાઈ, સુન્દર મુખડું કોને ના ગમે?) મોનીટરમાં પણ પ્રોસેસરની માફક કેટલાંય પરીવર્તન આવી ગયા છે. પહેલાં તો ભારેખમ પીક્ચર ટ્યુબ (picture tube) કે સી.આર.ટી.(CRT - cathode ray tube) મોનીટર ને સમ્ભાળવા પડતાં હતાં. હવે, સ્લીક અને સેક્સી એલ.સી.ડી. (LCD - liquid crystal display) કે પ્લાઝ્મા (plasma) મોનીટર આવી ગયા છે. (હીન્દી ફીલમની માફક જ સ્તો વળી… હવેની બધી હીરોઈન સ્લીમ-ટ્રીમ જ હોય છે ને…) બે વર્શ રાહ જુઓ, પછી તો પાતળી પદમણી જેવાં ઓલેડ (OLED - organic light emitting diode) ડીસ્પ્લે આવી જશે.
સી.આર.ટી. વધારે પાવર ખાતાં હતાં (તો જ તોસ્તાન બને…), એલ.સી.ડી. એ બાબતે હમ્મેશાં ડાયેટીંગ કરતાં હોય છે. વળી, એટલે જ, CRTથી સલામત અંતર રાખીને કામ કરવું સલાહભર્યું હતું ક, જેથી આંખોને વધુ નુકશાન ના થાય (એ તો LCD હશે તો પણ થશે જ, કારણ, લોકો એની સાથે વધારે સમય પસાર કરવા ઈચ્છશે!!!). ઘણી બધી બાબતોમાં દરેક પ્રકારનાં ડીસ્પ્લેમાં ફેર હોય છે.
કોંટ્રાસ્ટ રેશીયો (contrast ratio) - સહુથી પ્રકાશીત ટપકું (સફેદ) અને સહુથી ઘેરું ટપકું (કાળું) વચ્ચે પ્રતીદીપ્તી (લ્યુમીનંસ- luminance) ની સરખામણી. LCDમાં આ રેશીયો ઘણો ઓછો હોય છે. જો કે, સેમસંગના LCD મોનીટરનો રેશીયો ઘણો સારો હોય છે.
રીફ્રેશ રેઈટ (refresh rate) - એક વાર સ્ક્રીન રચવામાં લાગતો સમય. આ બાબતે પણ CRT ઘણાં સારા હોય છે. સેમસંગ (samsung) કે એલ.જી. (LG) LCD નો રીફ્રેશ રેઈટ પ્રમાણમાં ઘણો સારો હોય છે. (જો જો ભાઈ, હું સેમસંગ કે એલ.જી.ના માર્કેટીંગ માટે કામ નથી કરતો…)
અસ્પેક્ટ રેશીયો (aspect ratio) - હોરીઝોંટલ (horizontal) અને વર્ટીકલ (verticle) માપનું પ્રમાણ. અત્યાર સુધી 4:3 ના મોનીટર આવતાં હતાં, હવે 16:9 જેને વાઈડ સ્ક્રીન (wide screen) કહે છે, એવાં મોનીટર મળે છે. ધારો કે 1024 પીક્સેલ (pixel) અર્થાત ટપકાં જેટલી પહોળાઈ ધરાવતાં મોનીટરનો અસ્પેક્ટ રેશીયો જો 4:3 હોય તો, એની ઉંચાઈ 768 પીક્સેલ હશે, જ્યારે 16:9 વાળા મોનીટરની ઉંચાઈ 576 પીક્સેલ હશે.
રીઝોલ્યુશન (resolution) - મોનીટરમાં કેટલાં પીક્સેલ છે એનું માપ. જેમ કે, 1024 x 768 વગેરે. વધુ માહીતી માટે આ લીંક જુઓ: http://en.wikipedia.org/wiki/Display_resolution
હવે તો, LCD કે પ્લાઝ્મા ટીવીનો પણ કમ્પ્યુટર સ્ક્રીન તરીકે ઉપયોગ કરી શકાય છે. આ માટે, જે તે ટીવીમાં વી.જી.એ. કનેક્ટર (VGA - video graphics adapter) હોય છે. તો સામે, કમ્પ્યુટરમાં પણ ટીવી ટ્યુનર (TV tuner) કાર્ડ નાંખીને, કેબલ લગાડી શકાય છે અને ટીવીની માફક જ ચેનલ નીહાળી શકાય છે.
પીક્સેલ રચવા માટે CRT લાલ-લીલો-ભુરો (RGB) રંગનાં કીરણો મીશ્રીત કરીને જે તે રંગ નીપજાવે છે. જ્યારે, LCDમાં પીક્સેલને ઈલેક્ટ્રીકલ સીગ્નલ આપવામાં આવે છે અને એ પીક્સેલ જે તે રંગ ધારણ કરે છે. (માણસને રંગ બદલવા માટે બહારનાં કોઈ સીગ્નલની આવશ્યક્તા હોતી નથી.)
એકથી વધુ મોનીટરને એક કમ્પ્યુટર સાથે પણ જોડી શકાય છે, અને જો સોફ્ટવેર કે ડ્રાયવર એ પ્રમાણે હોય તો દરેક મોનીટરમાં દેખાતાં દ્રશ્યને વહેંચી શકાય છે.
કમ્પ્યુટર કે લેપટોપમાં ઘણી વાર S-Video કનેક્ટર હોય છે, જેનાથી ટીવી પર કમ્પ્યુટરનો આઉટપુટ આપી શકાય, પરંતુ ટીવીમાં જો VGA કનેક્ટર હોય તો એ વાપરવું હીતાવહ છે. એનાથી દ્રશ્ય વધારે સારું દેખાશે.
મેમરી અને સ્ટોરેજ - ચીરાગ પટેલ Jan 30, 2008
કમ્પ્યુટરમાં સીપીયુ (CPU) જેવો જ અગત્યનો ભાગ છે - સ્ટોરેજ (storage) અથવા મેમરી (memory). મેમરીના જુદાં જુદાં પ્રકાર છે અને મેમરી વગર સીપીયુ કામ કરી શકતું નથી! (જો કે, આપણો ઉપલો માળ ખાલી હોય તો પણ કામ તો કરે જ છે…). સ્ટોરેજ એટલે માહીતીના જથ્થાનો સંગ્રહ કરતો ભાગ (આપણા સ્ટોરેજમાં જંકફુડ વધારે હોય છે. કમ્પ્યુટર જો એવું કરવા લાગે તો આપણે એને ઉઠાવીને ફેંકી દઈએ.). આ સ્ટોરેજ 1 અને 0માં માહીતી સંગ્રહે છે, એટલે એનાં સેલ સ્વીચની માફક ચાલુ-બંધ હોય એ પ્રમાણે 1 અને 0 એવું ગણવામાં આવે છે. ભવીષ્યમાં એક ઈલેક્ટ્રોન બરાબર આવી એક સ્વીચ થાય એવા કમ્પ્યુટર આવશે ત્યારે કમ્પ્યુટરનું કદ ઘણું જ નાનું થઈ જશે. (અને જો ક્વાર્કને સ્વીચ તરીકે વાપરીયે તો!!!)
પ્રાયમરી સ્ટોરેજ (Primary Storage) એટલે એવું સ્ટોરેજ જે પ્રોસેસર સીધું જ વાપરી શકે. એમાં મુખ્યત્વે પ્રોસેસરનાં રજીસ્ટર, કૅશ, અને રૅમ (RAM- Random Access Memory)નો સમાવેશ થાય છે. આ બધી મેમરી પાવર જાય એટલે ભુંસાઈ જાય છે (કાશ, સ્ત્રીઓની યાદશક્તી આવી હોત…). એટલે, એને વોલેટાઈલ (volatile) મેમરી કહે છે. કમ્પ્યુટરમાં જ્યારે કોઈ એપ્લીકેશન કે ઓપરેટીંગ સીસ્ટમ ચાલુ હોય ત્યારે આ ત્રણેય પ્રકારની મેમરી વપરાતી હોય છે. બાયોસ-રોમ (BIOS-ROM કે ROM-BIOS) તરીકે ઓળખાતી મેમરી પણ વપરાય છે. આ મેમરી નોન-વોલેટાઈલ (Non-volatile) હોય છે. નોન-વોલેટાઈલ મેમરી કમ્પ્યુટરને વીજળી ના મળે તો પણ બધી માહીતી સંગ્રહી રાખે છે (જેથી પુનર્જન્મ વખતે કામ લાગે…). રજીસ્ટર અને કૅશ એ પ્રોસેસરની અંદર હોય છે. આજના બધાં સીપીયુ L1 અને L2 કૅશ તરીકે જાણીતી યુક્તી વાપરીને માહીતીની અતીઝડપી આપ-લે કરતાં હોય છે (એ વીશે ફરી ક્યારેક ચર્ચા કરીશું).
રોમ મેમરી એના નામ પ્રમાણે ખાલી વાંચવા નથી હોતી (ROM - Read Only Memory). પરંતું, એને લખવા માટે લાંબું કાંતવું પડે છે, એટલે જવલ્લે જ લખાતી માહીતી એના પર રાખવામાં આવે છે.
સેકંડરી સ્ટોરેજ (Secondary Storage) મોટે ભાગે કાયમી માહીતીનો સંગ્રહ કરે છે. સીપીયુ આ સ્ટોરેજ સાથે પ્રાયમરી સ્ટોરેજ વડે જ માહીતીની આપ-લે કરી શકે છે (બૉસને મળતાં પહેલાં સેક્રેટરી સાથે વાત કરવી જરુરી છે. વળી, આ સેક્રેટરી ટુંકામાં ટુંકી યાદશક્તી ધરાવે એ ખુબ જ જરુરી છે.). સેકંડરી સ્ટોરેજમાં હાર્ડ ડીસ્ક (Hard Disc), સીડી (CD - Compact Disc), ડીવીડી (Digital Video Disc), ટેપ ડ્રાઈવ (Tape Drive), ફ્લોપી ડીસ્ક (Floppy Disk), ઝીપ ડ્રાઈવ (ZIP Drive), યુએસબી ડ્રાઈવ (USB - Universal Serial Bus Drive) વગેરેનો સમાવેશ કરી શકાય. આ બધી સ્ટોરેજની ક્ષમતા ખુબ જ હોય છે. મોટે ભાગે, ફાઈલના સ્વરુપે અહીં બધી માહીતી સંગ્રહાય છે.
ટર્શરી સ્ટોરેજ (Tertiary Storage) એક મોટા પુસ્તકાલય સમાન હોય છે. એમાં ઑટોમેટીક મશીનથી ઘણી બધી ડ્રાઈવ સીસ્ટમ સાથે અટૅચ કે ડીટૅચ થતી હોય છે.
ઑફલાઈન સ્ટોરેજ (Offline Storage) કમ્પ્યુટરથી છુટું પાડી શકાય છે. પેન-ડ્રાઈવ કે જે યુએસબી પર ચાલે છે, ફ્લૉપી, સીડી, ડીવીડી, ફ્લૅશ વગેરે આના ઉદાહરણ છે (ચલતી કા નામ ગાડી?).
સ્ટોરેજના આ પ્રકારો પર વીગતે ચર્ચા ફરી કરીશું.
માઈક્રો પ્રોસેસર - ચીરાગ પટેલ Dec 24, 2007
માણસના શરીરમાં કેટલાં બધાં અવયવો છે! એમાંથી કેટલાંક દેખાય છે, જ્યારે કેટલાકનું કામ દેખાય છે. દરેક અવયવોને નીયંત્રીત કરતું અંગ છે - મગજ. જો મગજ બંધ તો બધું જ બંધ. દરેક જીવ કે યંત્રમાં કોઈ એક એવું અંગ હશે જ, કે જે સમગ્ર દેહ/યંત્રને સંચાલીત કરતું હશે. આ બ્લોગ (વીજાંશ) જે વીષયને સમજવા પ્રયત્ન કરે છે, તે કમ્પ્યુટર નામના યંત્રને આભારી છે. કમ્પ્યુટરને સંચાલીત/નીયંત્રીત કરતું અંગ છે - સેંટ્રલ પ્રોસેસીંગ યુનીટ (Central Processing Unit અથવા ટુંકમાં CPU). દરેક કમ્પ્યુટરમાં એક કે એકથી વધુ માઈક્રોપ્રેસેસર (Microprocessor) વડે સીપીયુ બને છે (આપણા મગજના જુદા જુદા ભાગ મળીને એક યુનીટ - મગજ બનાવે એ જ પ્રમાણે). માઈક્રોપ્રોસેસરમાં અસંખ્ય (કરોડોની સંખ્યામાં) સુક્ષ્મ ટ્રાંઝીસ્ટર(Transistor) હોય છે. મગજનાં જ્ઞાનતંતુઓની માફક જ આ બધાં ટ્રાંઝીસ્ટર ભેગાં મળીને કામ કરતાં હોય છે.
જેવી રીતે પ્રાણીની ઉત્ક્રાંતી થવાથી મગજનું કદ વધતું ગયું છે અને મગજની કામગીરી વધતી ચાલી છે, એવી જ રીતે માઈક્રોપ્રોસેસરની ક્ષમતામાં વધારો થતો જાય છે. Moore’s Law (મુરનો નીયમ) પ્રમાણે દર 18 મહીને માઈક્રોપ્રોસેસરની ક્ષમતા બમણી થતી હોય છે. (એક ગુજરાતીને પોરસાવાનું આથી વધુ મોટું કારણ કયું હોય? જે રોકાણ 18 મહીને બમણું થતું હોય એમા કયો લાલો પાછો હટે?). પહેલવહેલા માઈક્રોપ્રોસેસરની જે ક્ષમતા હતી, એ કરતાં 1 કરોડગણી વધુ ક્ષમતા અને એના કરતાં 5મા ભાગનું કદ આજના પ્રોસેસરમાં છે! અને આ પ્રગતી માત્ર 25 વર્ષમાં જ થઈ છે (… ભારે ઝડપી ઉત્ક્રાંતી, ભારે કરી … )!
આવા માઈક્રોપ્રોસેસરમાં ગાણીતીય અને તાર્કીક કામ કરવા માટે એએલયુ (ALU or Airthmetic and Logic Unit) હોય છે. માહીતીનો સંગ્રહ કરવા મેમરી યુનીટ(MU or Memory Unit) હોય છે. કામકાજ કરવા હાથ-પગ જેવાં રજીસ્ટર (Registor) હોય છે. આ બધાં યુનીટ કેટલાં બીટની માહીતી એકસાથે આપ-લે કરે છે એના પરથી એમના નામ પડે છે. જેમ કે, 8-બીટ, 16-બીટ, 32-બીટ અને 64-બીટ મશીન. એટલે કે, માઈક્રોપ્રોસેસર એના એક કોળીયામાં આટલા બીટની ક્ષમતાનો માહીતીનો જથ્થો લઈ શકે છે (બસ, વધુમાં વધુ 64-બીટ? આપણે બંદા તો એક કોળીયામાં ચોખાનાં 150 દાણા ખાઈ શકીએ ). 8-બીટ એટલે 1 બાઈટ એવું યાદ છે ને?
પહેલ વહેલું માઈક્રોપ્રોસેસર ઈંટેલ (Intel) કમ્પનીએ 4004, ટેક્ષાસ ઈંસ્ટ્રુમેંટ્સ (Texas Instruments) TMS 1000, અને ગેરેટ એઆઈ રીસર્ચ (Garrett AiResearch) CADC બનાવ્યું હતું. આ ત્રણેય લગભગ સાથે-સાથે જ બઝારમાં મુકાયા હતાં. આ બધાં 1970ની આસપાસ 4-બીટના માઈક્રોપ્રોસેસર તરીકે આવ્યાં હતાં.
ડ્યુઅલ કોર પ્રોસેસર (Dual-core Processor) હવે વપરાશમાં આવતાં જાય છે. 64-બીટના પ્રોસેસરનું કદ એટલું જ રાખીને એમાં બે પ્રોસેસર ફીટ કરવાથી ડ્યુઅલ કોર પ્રોસેસર બને છે (આપણી એક ખોપરીની અંદર, ખોપરીનું કદ વધાર્યા વગર બે મગજ ફીટ કરી દઈએ, એવું)! એ જ પ્રમાણે હવે તો ક્વૅડ કોર (Quad-core) અને એઈટ કોર (Eight-core) પ્રોસેસર અમુક હાઈ-પ્રોસેસીંગ સીસ્ટમમાં વપરાય છે (એક જ ખોપરીમાં આઠ મગજ!!!).
આપણે બોલચાલની ભાષાને સાંકેતીક શબ્દોમાં ફેરવીએ તો અક્ષરોની સંખ્યા ઘટાડી શકીએ. ૐ કે સ્વસ્તીક આનું પ્રાચીન ઉદાહરણ છે. એ પ્રમાણે માઈક્રોપ્રોસેસરની માહીતીની આપ-લે કરવાની જે ભાષા છે, એના શબ્દો ઘટાડીને જે માઈક્રોપ્રોસેસર બને છે એમને રીસ્ક પ્રોસેસર (RISC or Reduced Instruction Set Computer) કહે છે. માઈક્રોપ્રોસેસરની ભાષાને એસેમ્બ્લી લેંગ્વેજ (Assembly Language) કહે છે. એમાં પણ પ્રગતી થઈને હવે 64-બીટ પ્રોસેસર મળે છે એને સીસ્ક (CISC or Complex Instruction Set Computer) કહેવાય છે. આમ, માઈક્રોપ્રોસેસરનું કદ, માહીતી આપ-લે ક્ષમતા, ભાષા દરેકમાં ધરખમ ફેરફાર આવતાં જ જાય છે. (આપણે આપણા વીચારોને ભાષાનાં વાઘાં પહેરાવ્યાં વગર જ્ઞાનતંતુઓની આપ-લેની વીજ-રાસાયણીક ભાષામાં વાત કરી શકીએ?)
માઈક્રોપ્રોસેસરને માઈક્રોકંટ્રોલર (Micro-controller), ડીજીટલ સીગ્નલ પ્રોસેસર (Digital Signal Processor or DSP), સીસ્ટમ ઓન ચીપ (SoC or System-on-Chip) વગેરે નામે પણ ઓળખવામાં આવે છે. ખાસ કામ માટે વપરાતાં માઈક્રોપ્રોસેસરને જે તે કામ મુજબનું નામ આપવામાં આવે છે. જેમ કે, ગ્રાફીક્સનું કામ કરતાં પ્રોસેસરને GPU or Graphics Processing Unit કહે છે.
જુદી-જુદી કમ્પનીના પ્રોસેસરની ડીઝાઈનમાં થોડાં પાયાનાં ફેરફાર હોય છે. ઈંટેલના પ્રોસેસર લીટલ એંડીયન(Little Endian) કહેવાય છે, જ્યારે પાવર પીસી (PowerPC) બીગ એંડીયન (Big Endian) કહેવાય છે. 32-બીટ પ્રોસેસર હોય અને લીટલ એંડીયન હોય તો બીટ 0નું સ્થાન જમણી બાજુ હોય અને બીટ 31 ડાબી બાજુ હોય, જ્યારે બીગ એંડીયનમાં બીટ 0નું સ્થાન ડાબી બાજુ અને બીટ 31નું સ્થાન જમણી બાજુ હોય (આપણે આપણું મોઢું અરીસામાં જોઈએ તો પ્રતીબીંબ પલટાયેલું લાગે છે, એવું જ).
કેટલાંક પ્રચલીત પ્રોસેસર બ્રાંડ: 65xx, ARM, RCA, DEC, Intel, MIPS, Motorola 6800, IBM POWER, OpenRISC, PA-RISC, SPARC, AMD, Xilinx વગેરે.
ઈતીશ્રી માઈક્રોપ્રોસેસર કથાયૈ નમઃ॥