BatteriMAX

BatteryMAX är ett inaktivt detekteringssystem som används för datorkrafthantering under operativsystemkontroll utvecklat vid Digital Research, Inc.:s European Development Center (EDC) i Hungerford, Storbritannien. Den skapades för att ta itu med den nya genren av bärbara persondatorer ( bärbara datorer ) som kördes från batteri. Som sådan var det också en integrerad del av Novells PalmDOS 1.0 operativsystem skräddarsytt för tidiga handdatorer 1992.

Beskrivning

Energibesparing i bärbara datorer förlitade sig traditionellt på hårdvaruinaktivitetstimer för att avgöra om en dator var inaktiv. Det skulle vanligtvis ta flera minuter innan datorn kunde identifiera inaktivt beteende och växla till ett lägre strömförbrukningstillstånd. Genom att övervaka mjukvaruapplikationer inifrån operativsystemet kan BatteryMAX minska tiden det tar att upptäcka inaktivt beteende från minuter till mikrosekunder. Dessutom kan den växla strömtillstånd cirka 18 gånger i sekunden mellan en användares tangenttryckningar. Tekniken fick namnet Dynamic Idle Detection och inkluderar att stoppa eller stoppa processorn under perioder på bara några mikrosekunder tills en hårdvaruhändelse inträffar för att starta om den.

DR DOS 5.0 år 1990 var det första operativsystemet för persondatorer som inkorporerade ett inaktivt detekteringssystem för energihantering. Det uppfanns av de brittiska ingenjörerna Roger Alan Gross och John P. Constant i augusti 1989. Ett amerikanskt patent som beskriver systemet för tomgångsdetektering lämnades in den 9 mars 1990 och beviljades den 11 oktober 1994.

Trots att BatteryMAX tog en tidig ledning och hade skyddet av ett patent, hade BatteryMAX ingen betydande kommersiell framgång efter att ha hamnat på sidan efter den oordning som följde på integrationen av Digital Research i Novell, Inc. 1991. Det var inte förrän 1992, ungefär tre år efter uppfinningen blev den mjukvarans energihantering under operativsystemkontroll allmänt förekommande efter lanseringen av Advanced Power Management (APM) av Microsoft och Intel .

Funktionell översikt

BatteryMAX använder tekniken för dynamisk tomgångsdetektering för att ge energibesparingar genom att detektera vad applikationen gör (om den är inaktiv) och byta strömtillstånd (går in i lågströmsläge) vilket förlänger batteriets livslängd för produkten.

BatteryMAX använder en skiktad modell av detektionsprogramvara inkapslad i en enhetsdrivrutin för DOS -tecken som kallas $IDLE$ som innehåller all hårdvaruberoende kod för att stödja dynamisk detektering av tomgång. Den kan antingen länkas till DR-DOS operativsystems BIOS eller laddas dynamiskt med CONFIG.SYS DEVICE -direktivet, vilket överbelastas den inbyggda standarddrivrutinen. Alla versioner av DR-DOS sedan version 5.0 har innehållit stöd för dynamisk tomgångsdetektering inuti operativsystemets kärna . När operativsystemet tror att ett program är inaktivt anropar det $IDLE$ BIOS/drivrutinslagret, som exekverar anpassad kod skriven av datortillverkaren eller tredje part för att verifiera begäran och byta strömtillstånd. Med hjälp av enhetsdrivrutinskonceptet kan BatteryMAX integreras med hårdvarurelaterade energihanteringsfaciliteter, som kan tillhandahållas av den underliggande hårdvaran, inklusive gränssnitt med APM- eller ACPI -systems BIOS .

Strömtillstånd är datorberoende och kommer att variera från tillverkare till tillverkare. Energibesparingar kan göras på ett antal sätt, inklusive att sakta ner/stoppa processorns klockhastighet eller stänga av strömmen till kompletta delsystem.

Innan du byter strömtillstånd använder $IDLE$ -drivrutinen all tillgänglig hårdvaruhjälp för att upptäcka om applikationen har åtkomst till andra komponenter i systemet. Till exempel kan applikationen polla en seriell port eller uppdatera en grafikskärm. Om så är fallet bestämmer enhetsdrivrutinen att applikationen i själva verket inte är inaktiv och åsidosätter kärnans anrop att byta strömtillstånd genom att skicka information tillbaka upp i lagren och tillåta applikationskörning att återupptas.

COMMAND.COM i DR DOS 5.0 och högre implementerar ett internt kommando IDLE som tar ON|OFF- parametrar för att aktivera eller inaktivera den dynamiska tomgångsdetekteringen.

Upptäcker när en applikation är inaktiv

En applikation är inaktiv om den väntar på att någon extern händelse ska inträffa, till exempel för en tangenttryckning eller en musrörelse, eller för en bestämd tid att passera. DR-DOS-kärnan övervakar alla DOS API- anrop och bygger upp en profil över applikationernas beteende. Vissa kombinationer av API-anrop tyder på att applikationen är inaktiv.

$IDLE$ -drivrutinen kan göra den subtila skillnaden mellan ett program som verkligen är inaktivt, till exempel ett som pollar tangentbordet i en snäv slinga, och ett som är aktivt men också pollar tangentbordet, för att testa om det finns en avbryttangent att tryckas. Föraren gör denna skillnad genom att övervaka tiden det tar att gå på tomgång. Om tiden ligger inom en angiven period antar föraren att programmet är inaktivt, t.ex. polling i en snäv slinga för att en tangent ska tryckas ned. Om tiden ligger utanför den angivna gränsen, antar föraren att viss bearbetning har skett mellan avfrågning av tangentbordet, och tillåter applikationskörning att återupptas utan att byta strömtillstånd. En lokal variabel, IDLE_CNTDN, anger tiden mot vilken den faktiska tiden det tar att gå i viloläge jämförs. Värdet för denna variabel beräknas dynamiskt vid initiering och omräknas periodiskt.

Ursprunget till BatteryMAX

Idle-detekteringstekniken användes först för att förbättra multi-tasking av single-tasking DOS-applikationer i Digital Researchs multi-tasking/multi-user Concurrent DOS 386 (CDOS386) operativsystem.

Program skrivna för enstaka operativsystem som MS-DOS/PC DOS kan gå in i oändliga loopar tills de avbryts; till exempel när du väntar på att en användare ska trycka på en knapp. Även om detta inte är ett problem där det inte finns någon annan process som väntar på att köras, slösar det bort värdefull processortid som skulle kunna användas av andra program i en multi-tasking/multi-användarmiljö som CDOS386. Applikationer som är designade för en miljö med flera uppgifter använder API-anrop för att "sova" när de är inaktiva under en period men vanliga DOS-applikationer gör inte detta, så inaktivdetektering måste användas.

Den Concurrent DOS 386-versionen inkluderade en Idle Detection-funktion i operativsystemets kärna som övervakade DOS API- anrop för att avgöra om applikationen gjorde ett användbart arbete eller faktiskt inaktivt. Om det var inaktivt avbröts processen så att avsändaren kunde schemalägga en annan process för exekvering.

Patenttvister

BatteryMAX och patentet "tomgångsdetektering" spelade en viktig roll i ett påstått patentintrång relaterade till mjukvarans energihantering under operativsystemkontroll.

Den 15 maj 2009, St. Clair Intellectual Property Consultants. väckte civil talan nr 09-354 i USA:s distriktsdomstol D. Delaware mot svarandena Acer , Dell , Gateway och Lenovo och väckte den 18 september 2009 civilrättslig talan nr 09-704 mot Apple och Toshiba . flera amerikanska patent som de ägde relaterade till mjukvaruenergihantering under operativsystemkontroll.

St. Clair hävdade att Henry Fung hade uppfunnit mjukvarans energihantering under operativsystemkontroll och påstod att dessa företag hade gjort intrång i St. Clairs patent och därför var skyldig St. Clair royaltybetalningar . Microsoft ingrep på de svarandes vägnar och lämnade in en deklarerande dom mot St. Clair den 7 april 2010, och begärde domar om icke-intrång och ogiltighet av Fung-patenten. (DI 1, CA nr 10-282). Intel lämnade in ett ingripande på uppdrag av svarandena och detta beviljades den 4 juni 2010 (DI 178, CA nr 09-354).

Advokatfirman Perkins Coie i Seattle , som agerar för de tilltalade, upptäckte BatteryMAX och Grosss patent för viloupptäckt under en tidigare sökning. Gross patent hade ett tidigare prioritetsdatum än Fungs patent som om det bevisades skulle undergräva St. Clairs fall. Den 28 februari 2011 anlitades Gross av Intel som sakexpert för att ge sakkunniga vittnesmål för de tilltalade i fallet. Gross lämnade bevis i sin expertrapport att han, inte Fung, hade uppfunnit mjukvarans energihantering under operativsystemkontroll och placerade patentet för Idle Detection och existensen av BatteryMAX som bevis på detta.

St. Clair lämnade in en yrkande om att utesluta åsikter rörande BatteryMAX, i ett försök att få Gross expertrapport avvisad, men den 29 mars 2013 avslog tingsrätten St. Clairs yrkande och förklarade Gross vittnesmål för de tilltalade som tillåtligt, [ icke- primär källa behövs ] som anger att "Domstolen håller med svarandena om att det finns tillräckliga bestyrkande bevis för att BatteryMAX var tillgängligt för allmänheten före Fung-patentens prioritetsdatum. Vidare drar domstolen slutsatsen att även om BatteryMAX inte föregick Fung-patenten, Mr. Gross vittnesmål […] skulle vara relevant och till hjälp för faktaupptäckaren i en uppenbarhetsutredning ”.

Se även

externa länkar