Wednesday, May 21, 2014

தொடர்பாடல் செயலிகளின் பரிணாம வளர்ச்சி - 1

First published at Solvanam.com site on March 31, 2014

world
LSI-AXMNBGதொடர்பு செயலிகள் (Communication Processors) மற்றும் திசைவி (Router) சாதனங்களின் வளர்ச்சி என்பது ஒரு விரிவுரை வழங்கவோ அல்லது ஒரு வெண்பலகை விவாதம் நடத்தவோ ஏற்ற சுவையான தலைப்பு. அதற்கு பதிலாக ஒரு சொல்வனம் கட்டுரை தொடர் வடிவில் அதனை இங்கே அலசிப்பார்ப்போம். பக்கத்து படத்திலிருக்கும் ஒரு வயது கூட ஆகாத புத்தம் புதிய தொடர்பு செயலியைப்பற்றி எழுதுவதற்கு முன்னேற்பாடாக அதன் கொள்ளு, எள்ளு தாத்தா பாட்டிகளை எல்லாம் தாண்டிப்போய் ஒரு இருபத்தி ஐந்து  தலைமுறைகளுக்கு முன்னால் வந்த சிலிக்கன் சில்லுகளைப்பற்றி முதலில் ஒரு மலரும் நினைவுகள் நடத்த வேண்டும். அது ஒரு நல்ல அஸ்திவாரம் அமைத்துக்கொடுத்து புதிய செயலிகளை புரிந்து கொள்ள வழி வகுக்கும்.
பொது நோக்கு செயலிகள்
மின்னணுவியல் படிக்க ஆரம்பிக்கும்போது 555 என்கிற ICயின் அறிமுகம் கிடைக்கும்[1]. இது செயலி எல்லாம் ஒன்றும் இல்லை. எட்டுக்கால் பூச்சி மாதிரி எட்டு இணைப்புமுட்களுடன் (connection pins) இருக்கும் இந்த ICக்குள் எளிமையான ஒரு மின்சுற்று (circuit).  இந்தப்பக்கம் ஒரு சின்ன பேட்டெரியை இணைத்தால், அந்தப்பக்கம் அதே பேட்டரி மின் அழுத்தத்தை ஆன்/ஆஃப்/ஆன்/ஆஃப் என்று, யாரோ ஒரு ஸிவிட்சை திரும்பத்திரும்ப போட்டு அணைப்பது போல, மாற்றிக்கொடுக்கும். அவ்வளவுதான். டைமர் (timer) என்று சொல்லப்படும் இந்த ICக்கு ஆயிரக்கணக்கான உபயோகங்கள் உண்டு. உதாரணமாக அந்த மின் அழுத்தம் மாறும் இடத்தில் ஒரு ஒலிப்பெருக்கியை இணைத்து அதை ஙீ என்று சத்தமிட வைக்கலாம். இதை வைத்துக்கொண்டு ஹாம் ரேடியோ கிளப்களில் (HAM Radio Club) மோர்ஸ் குறியீடுகளை (Morse Code) பயின்றிருக்கிறோம்.
555IC
மிக விலை மலிவான, அதே சமயம் எல்லோருக்கும் நன்கு தெரிந்த புரிந்த இந்த IC வெளிவந்து நாற்பது வருடங்களுக்கு மேல் ஆனபோதிலும், இன்றைக்கும் வருடத்திற்கு சுமார் 10 கோடிக்கு மேல் தயாரித்து விற்கப்படுகிறது! 555 போன்ற எளிமையான ICக்களை தாண்டி 1960, 70களில் நுண்செயலிகள் (microprocessors) முதன்முதலாக உருவமைக்கப்பட்டபோது, அந்த முயற்சியின் ஆரம்ப இலக்குகளை இரண்டு வகையாக பிரித்து பார்க்கலாம்.
1. செயலிகளை கூட்டல், கழித்தல், பெருக்கல், வகுத்தல் முதலிய பொதுக்கணித செயல்பாடுகளை செய்ய வைப்பது.
2. ஒரு நினைவக இடத்தில் (memory location) ஒரு மதிப்பை (value) அல்லது கட்டளையை (instruction) எழுதி வைப்பது, அவ்வாறு எழுதப்பட்ட மதிப்பையோ அல்லது கட்டளையையோ அந்த நினைவகத்தை அணுகி படித்து திரும்ப எடுத்து வருவது (read and retrieve).
இந்த இரு வகை அடிப்படை செயல்பாடுகளை மாற்றிமாற்றி இணைத்து ஒரு நிரலியாக ஆக்கி நுண்செயலிகளை  இயக்கச் செய்ய வைப்பதன் மூலம் குமாஸ்தாக்கள் வங்கிகளில் செய்து வந்த கணக்காளர் பணிகளை மட்டுமன்றி  அணி கையாளுதல் (matrix manipulation), தொழில்துறை மயமாக்க பணிகள் (industrial instrumentation) போன்ற மிகவும் சிக்கலான பல விஷயங்களைக்கூட திறம்பட சாதிக்க முடிந்தது. 1977 வாக்கில் வெளிவந்த ஃஜிலாக் (Zilog) நிறுவனத்தின் Z80 என்கிற நுண்செயலி அந்தக்காலத்தில் ரொம்ப பிரபலம். முப்பது வருடங்களுக்கு முன் எல்லா இந்திய பொறியியற்கல்லூரிகளிலும் கூட அதை வைத்துத்தான் மின்னணுவியல் மாணவர்களுக்கு பாடம் நடத்துவார்கள். அப்போது வந்த விக்ரம் தமிழ் திரைப்படத்தின் கிளைமாக்ஸ் காட்சியில் கமல் அக்னிபுத்ரா ஏவுகணையின் மேலேயே உட்கார்ந்து  கொண்டு அதன் இலக்கை மாற்றி ப்ரோக்ராம் செய்கிறேன் என்று  எதையோ தட்டிக்கொண்டு இருப்பாரே அது கல்லூரிகளில் அப்போது உபயோகத்திலிருந்த ஒரு Z80 பயிற்சி பெட்டிதான் என்று ஞாபகம். அந்தப்படத்திற்கு கதை வசனம் எழுதியது எழுத்தாளர் சுஜாதா. அவர் அப்போது புழக்கத்தில் இருந்த அந்தப்பெட்டியை எங்கிருந்தாவது வாங்கி கொடுத்திருக்கலாம்.
Z80
கம்பளிப்பூச்சியை ஞாபகப்படுத்தும் இந்தப்படத்தில் காணப்படும் Z80யின் கால்கள் போலத்தோன்றுபவை (இந்தப்பக்கம் இருபது, அந்தப்பக்கம் இருபது, ஆக மொத்தம் நாற்பது கால்கள்) ஈயப்பற்று வைத்து மின்சுற்று பலகையில் (Circuit Board) மற்ற உதிரி பாகங்களுடன் இந்த நுண்செயலியை இணைக்க பயன்படுத்தப்படும் ஊசிகள் (pins) அல்லது இணைப்புமுட்கள்.
காலபோக்கில் நுண்செயலி துறை மேலும் வளம் பெற, அது பொது நோக்கு செயலிகளுக்கு (General Purpose CPU) வழிவகுத்தது. இந்த பொது நோக்கு செயலிகள் முந்தைய நுண்செயலிகளை விட வலிமை மிகுந்ததாகவும், மேற்சொன்ன இரண்டை தாண்டி மற்றும் பல புதிய அடிப்படை செயல்பாடுகளை (Instruction Set) செய்யக்கூடியவையாகவும் இருந்ததால், அவற்றை மூளையாக உபயோகித்து பலதரப்பட்ட கணினிகள் வர ஆரம்பித்தன. இந்த கணினிகள் வளர வளர, அவற்றில் ஓடும் மென்பொருட்கள் (Software) அடியில் இருக்கும் வன்பொருட்களின் (Hardware) குணாதிசயங்களை பற்றி கவலைப் படாமல், பொறியாளர்கள் இஷ்டத்திற்கு நிரலிகள் எழுத வழி வகுத்தன. சில்லு மொழி என்று சொல்லப்படும் assembly instructionsஐ உபயோகிப்பதை தாண்டி C, ஜாவா போன்ற உயர்நிலை மொழிகளில் நிரலிகளை எழுத முடிந்தது பொறியாளர்களுக்கு ஒரு பெரிய சுதந்திரமாக அமைந்து உற்பத்தித் திறனை வெகுவாக அதிகரித்தது.
செயலி/ஒடுக்கி ஜோடிப்பொருத்தம்
பொறியாளர்கள் தங்களுக்கு நிரல்கள் எழுத வசதியான C, ஜாவா போன்ற மொழிகளை உபயோகித்தாலும் இறுதியில் கணினிகளுக்கு கொடுக்கப்படும் ஆணைகள் சில்லு மொழியில்தான் இருக்கவேண்டும். எனவே ஒடுக்கிகளை (compilers) கொண்டு அந்த நிரல்களை சில்லு மொழிக்கு மொழி பெயர்த்து கணினிகளிடம் சமர்ப்பிக்கும் முறை அமலுக்கு வந்தது. உதாரணத்திற்கு ஆங்கிலம் மட்டுமே பேசும் ஒரு தொழிலதிபர் சென்னையில் ஒரு வணிக மாநாடு நடத்த விரும்புகிறார் என்று வைத்துக் கொள்வோம். அவர் தமிழ் தெரிந்த ஒரு ஒப்பந்தக்காரரை (Contractor) அமர்த்தி, அவரிடம் தன் தேவைகளைச் சொல்லிவிடுகிறார். அதன் பின் அந்த ஒப்பந்தக்காரர் அரங்க அமைப்புக்கும், உணவளிப்பதற்கும் அறைகளை சுத்தம் செய்வதற்குமாக பணியாளர்களை அமர்த்தி தமிழில் நிறைய சின்னச்சின்ன ஆணைகள் கொடுத்து வேலையை முடித்துக்கொடுக்கிறார். இந்த உதாரணத்தில், அந்த தொழிலதிபரை மென்பொருள் எழுதும் பொறியாளராகவும் (Software Engineer), தமிழ் மட்டுமே பேசும், சிறு சிறு ஆணைகளை மட்டுமே புரிந்து நிறைவேற்றத்தெரிந்த கடைநிலை பணியாளர்களை கணினியின் வன்பொருட்களாகவும் (hardware), இரண்டு  பக்கத்திற்கும் பாலம் அமைக்கும் ஒப்பந்தக்காரரை ஒடுக்கிக்கு (Compiler) இணையாகவும் புரிந்து கொள்ளலாம்.
இம்முறையில் மென்பொருள் எழுதும் முறை அமலுக்கு வந்தபின் ஒரு புறம் வானிலை கணிப்பு, ஏவுகணைகளை வழிகாட்டுவது போன்ற பெரிய விஷயங்களுக்கான மென்பொருட்களும் கணினிகளும் வந்து கொண்டிருந்த அதே சமயத்தில் இன்னொருபுறம்  தனிநபர் உபயோகத்திற்கான வார்த்தை செயலிகள் (Word Processor), விரிதாள்கள் (Spreadsheet) போன்ற மென்பொருட்களும் வர ஆரம்பித்தன. 1980-90களில் இன்டெல் நிறுவனத்தின் x86 நுண்செயலிகளும் மைக்ரோசாப்ட் நிறுவனத்தின் விண்டோஸ் மென்பொருட்களும் சேர்ந்து செய்த மெகா வியாபாரம் “விண்டெல் புரட்சி” (Wintel revolution) என்று வர்ணிக்கப்படுவதை பார்த்திருப்பீர்கள்.  இன்டெல் நிறுவனத்தின் பெண்டியம் செயலிகளை பற்றியும் அதன் முன்னோடிகளான x286, x386, x486 செயலிகளைப்பற்றியும் கேள்வி படாதவர்களே இல்லை. அவைகள் அனைத்தும் பொதுநோக்கு செயலிகள் குடும்பத்தை சார்ந்தவைதான்.
i386CPUpile
1990களிலேயே பெண்டியம் செயலிகளுக்கு போட்டியாக வேறு சில செயலிகளும் அறிமுகப்படுத்தப்பட்டன. மோட்டரோலா, ஆப்பிள் மற்றும் ஐபிஎம் ஆகிய மூன்று நிறுவனங்களும் சேர்ந்து படைத்த “பவர் பீசீ” (Power PC) அதற்கு ஒரு உதாரணம். அந்த காலக்கட்டத்தில் வெளி வந்த மாக்கிண்டாஷ் கணினிகள் அனைத்திலும் ஆப்பிள் நிறுவனம் பவர் பீசீ செயலிகளையே உபயோகித்தது. இருந்தும் சந்தையில்  விண்டெல் கணினிகளின் பங்கோடு  ஒப்பிடும்போது, ஆப்பிள் உட்பட மற்ற கணினிகளின் பங்கு 10 சதவிகிதத்தை கூட தொடவில்லை என்பதால் பெண்டியம் செயலிகள் அளவுக்கு வேறு எவையும் வளர்ந்து இன்டெல் நிறுவனத்திற்கு எதிராக சவால் விட முடியவில்லை. இறுதியில் ஆப்பிள் நிறுவனமும் தனது மாக்கிண்டாஷ் கணினிகளில் இன்டெல் செயலிகளையே உபயோகிக்க ஆரம்பித்தது. இப்படி தனிநபர் உபயோகத்திற்கான மேஜை கணினிகள் அனைத்திலும் இன்டெல் செயலிகளே என்று அனைவரும் சரணாகதி அடைந்துவிட்டாலும், இப்போது நவீன கைபேசிகள் மற்றும் iPad மாதிரியான பலகை கணினிகள் (Tablets) இவற்றில் எல்லாம் ARM நிறுவனத்தின் செயலிகளே வெகுவாக உபயோகப்படுத்தப்படுகின்றன. இதைப்பற்றி சற்று விரிவாக பின்னால் பார்ப்போம்.
பொதுவாக கடந்த முப்பது வருடங்களாக எந்த ஒரு தேவைக்கும் மென்பொருட்கள் தயாரிக்கும் முறை ஒரே வழியைத்தான் பின் பற்றுகிறது. முதலில் தாங்கள் தீர்வு காண வேண்டிய பிரச்சினை என்ன அல்லது எந்தவித பயன்பாட்டுக்காக மென்பொருள் எழுதப்படுகிறது என்பதை புரிந்துகொண்டு பொறியாளர்கள் தங்களுக்கு எழுத வசதியான C, C++, ஜாவா போன்ற, மனிதர்களால் எளிதாகாப்புரிந்து கொள்ள முடியும் கணினி மொழிகளை உபயோகித்து நிரலிகளை எழுத்துகிறார்கள். பின்னர் அதை ஒடுக்கிகளிடம் கொடுத்து எந்த செயலியில் அந்த நிரலி ஓட வேண்டுமோ அதற்கேற்றது போல் அதை மொழி பெயர்த்து  வாங்குகிறார்கள். மேல் சொன்ன உதாரணத்தில் ஒப்பந்தக்காரர் கடைநிலை ஊழியர்களுக்கு கொடுக்கும் ஆணைகள் சிறு சிறு ஆணைகளாக இருப்பதோடு தமிழிலும் இருப்பதுபோல், ஒடுக்கிகள் வெளியே துப்பும் ஆணைவரிசைகள் கணினிகளுக்கு தெரிந்த சிறு சிறு ஆணைகளாக இருப்பதோடு, அவற்றுக்கு புரியும் பூஜ்யம் ஒன்று என்ற இரண்டே எழுத்துகள் கொண்டஇரும (Binary) மொழிக்கும் மொழி மாற்றம் செய்யப்பட்டு வெளி வருகிறது. இப்படி மாற்றப்பட்ட ஆனைத்தொகுப்புகளை பைனரி பதிப்பு என்று சொல்வது வழக்கம். நாம் வலை தளங்களில் இருந்தோ அல்லது குறுவட்டுகளில் (CD) இருந்தோ நிரலிகளை இறக்கும்போது இத்தகைய பைனரி பதிப்புகளைத்தான் பெறுகிறோம்.
Code_Portability_Compiler_Chips_Source_Code_Logic_Assembly_IC_Circuits_AMD_Intel_Flow_Graphs_Charts
ஒவ்வொரு பொதுநோக்கு செயலிக்கும் புரியும் கடைநிலை ஆணைகள் வெவ்வேறு என்பதால், இன்டெல் பெண்டியம் செயலிக்காக தயாரிக்கப்பட்ட பைனரி பதிப்பை பவர் பீசீ  செயலியை கொண்ட கணினியிடம் கொடுத்தால், அது ஒன்றும் புரியாமல் தலையை சொறிந்து கொள்ளும். ஆனால் பொதுவாக பொறியாளர்கள் எழுதிய ஒரே மென்பொருளை ஒடுக்கிகளை மாற்றுவதன் மூலம் வெவ்வேறு செயலிகளுக்கான பைனரி பதிப்பாக செய்து           விட முடியும். எனவே ஒரு விரிவுத்தாள் அல்லது விளையாட்டு நிரலியை ஒருவர் எழுதினால் பிறகு வெவ்வேறு ஒடுக்கிகளை உபயோகித்து  வெவ்வேறு செயலிகளுக்கான பைனரி பதிப்புக்களை உருவாக்கி அவற்றை PC, மாக்கிண்டாஷ், பலகை கணினி என்று             எல்லா கணினிகளிலும் இறக்கி ஒட்டிவிட முடியும். கல்யாணம் நன்றாக நடக்க சரியான காண்ட்ராக்ட்காரரை பிடிப்பது அவசியம் என்பது போலத்தான் இதுவும். ஒரு கல்யாணமோ வணிக கூட்டமோ நடக்க காண்ட்ராக்ட்காரருடன் கல்யாண மண்டபமோ, ஹோட்டலோ கூட தேவை அல்லவா? அதற்கு இணைதான்  ஆப்பரேட்டிங் சிஸ்டம் என சொல்லப்படும் கணினி இயக்க அமைப்புகள். கல்யாண மண்டபத்தில் சமையலறை, தண்ணீர் வசதி, மின்சார இணைப்பு, கார் நிறுத்த இடம் என்று கல்யாணம் நடத்த தேவையான வசதிகள் இருப்பது போல,  மைக்ரோசாப்டின் விண்டோஸ், ஆப்பிளின் மாக் ஓஎஸ், கூகிளின் ஆண்ட்ராய்டு போன்ற அமைப்புகள் கணினிகளில் நுகர்வோர் மற்றும் பொறியாளர்களுக்கு அவற்றை உபயோகப்படுத்த தேவையான வசதிகளை அமைத்து தருகின்றன.
தொலைதொடர்பு தேவைகளை பூர்த்தி செய்யும் பெரும்பாலான கணினிகள் லினக்ஸ் (Linux) என்னும் ஒரு இயக்க அமைப்பையே பெரும்பாலும் உபயோகிக்கின்றன. மற்ற அமைப்புகள் போல் இல்லாமல், பொது நன்மைக்காக லினக்ஸ் இலவசமாக இணையத்தில் கிடைப்பதும், மற்றவைகளுடன் ஒப்பிடும்போது லினக்ஸ் சுலபமாக வழுக்கி விழாமல், வருடக்கணக்கில் தொடர்ந்து இரவுபகலாக ஓடும் உறுதியும் பலமும் கொண்டதாக இருப்பதும் இதற்கு முக்கியக்காரணங்கள்.
ஆரம்பத்தில் தனித்தனி தீவுகளாக இயங்கி வந்த கணினிகள் 80களில் இணையம் உருவாக ஆரம்பித்தபோது ஒன்றோடு ஒன்று தொடர்புகொள்ள வேண்டியிருந்தது. இதற்காக முதலில் ராணுவ, அரசாங்க, பல்கலைகழக கணினிகள் ஒன்றுடன் ஒன்று இணைக்கப்பட்டபோது  உருவான போக்குவரவு பாதைகளை வழிநடத்த திசைவிகள் (Routers) வேண்டியிருந்தன. அப்போதிருந்த தொழில்நுட்பப்படி பொதுநோக்கு செயலிகளை உபயோகித்து திசைவி பணிகளை ஆற்றும் நிரல்களை எழுதி அவற்றை பொதுநோக்கு செயலிகளால் ஆன கணினிகளிலேயே ஓட்ட ஆரம்பித்தார்கள். ஒரு ஊர் வளரும்போது போக்குவரத்தை சீரமைக்க போலீஸ் காரர்களையும், தபால் பட்டுவாடா செய்ய தபால்காரர்களையும் அமர்த்துவதுபோல ஆங்காங்கே ஆற்றப்பட வேண்டிய பணிகளுக்கு எல்லாம் ஒவ்வொரு  பொதுநோக்கு செயலியை அமர்த்தி, அது என்ன செய்யவேண்டும் என்பதை ஒரு நிரலியாக எழுதி அதனிடம் கொடுத்து ஓட விட்டார்கள். இணையத்தின் ஆரம்பகால போக்குவரத்தை இம்முறையில் வழிநடத்த முடிந்தாலும், விரைவில் பொதுநோக்கு செயலிகள் தங்களை நோக்கி வரும் ட்ராஃபிக்கை சமாளிக்க முடியாமல் திணற ஆரம்பித்தன. அது ஏன் என்று புரிந்து கொள்ள இணையம் முழுதும் ஓடித்திரியும் சின்னஞ்சிறு பொட்டலங்களைப்பற்றி பேச வேண்டும். அது அடுத்த இதழில்.
(தொடரும்)
சான்றாதாரங்கள்
குறிப்புகள்
தமிழில் கட்டுரைகள் எழுதும்பொழுது காரணப் பெயர்களை மொழிமாற்றம் செய்ய வேண்டும். ஆனால் இடுகுறிப் பெயர்களை மொழி மாற்றம் செய்யத் தேவை இல்லை. ஆங்கிலம் பிறமொழிச்சொற்களை தத்தெடுத்துக்கொள்வது போல், தமிழும் ஆங்கில இடுகுறிப் பெயர்களை அப்படியே உபயோகிக்கலாம். எனவே coffeeயை காஃபி என்றே சொல்லலாம். கொட்டைவடிநீர்  குழப்பி என்றெல்லாம் சொல்ல வேண்டாம். ஆனால் Microprocessorஐ நுண்செயலி என்று சொல்லலாம். வாசகர்கள் வசதிக்காக இக்கட்டுரைத்தொடரில் வந்த மொழிமாற்றம் செய்யப்பட்ட முக்கியச்சொற்களின் பட்டியல்:
Communication Processor: தொடர்பாடல் செயலி
Compact Disc: குறுவட்டு
Compiler: ஒடுக்கி
Connection Pins: இணைப்புமுட்கள்
Decryption: மறைவிலக்கம்
Encryption: மறையாக்கம்
General Purpose Processor: பொதுநோக்கு செயலி
Hardware: வன்பொருட்கள்
Internet Protocol (IP): இணையநெறிமுறை
Internet Terminal: இணையமுனையம்
Microprocessor: நுண்செயலி
Moore’s Law: மூரின் விதி
Network: பிணையம்
Network Processor: பிணையச்செயலி
Quality of Service (QoS) : சேவைத்தரநிர்ணயம்
Router: திசைவி
Spreadsheet: விரிதாள்
Software: மென்பொருட்கள்
Tablet Computer: பலகை கணினி
Virtual Pipeline: மெய்நிகர் குழாய்வழியமைப்பு
Website: இணையதளம்
Word Processor: வார்த்தை செயலி

No comments:

Post a Comment