Hur är detta ens möjligt? [Aktivera hyperthreading på 3570K /mod]

Permalänk
Moderator
Festpilot 2020, Antiallo
Skrivet av Söderbäck:

Fast HT är inte en egen fysiskt separat del. Så enkelt är det inte ;). HT använder ju samma kisel, men ställer förfrågningarna i ett delat kösystem så att processorn kan användas mer effektivt (färre överflödiga beräkningscykler typ). HT har alltså inte med fler processorkärnor att göra. Annorlunda köhantering som knappt kräver extra kisel är väl en gravt förenklad men ganska bra förklaring.

Enda anledningen till att man inte har HT på alla processorer fån Intel är för att man vill ha en bredare produktportfölj. Det hade inte varit några problem att sälja alla intelprocessorer med HT aktiverat för samma pris. Utöver marknadsföringsmässigt då...

Det är standard sedan väldans länge att man skapar ett fåtal olika olika processorer, testar dessa och sedan skapar många fler olika produkter av dessa beroende på hur bra de presterar.
Var väl lite liv på forumet om detta för några år sedan när en del insåg att två, tre och fyrkärninga processorer och även processorer med/utan grafikprocessor egentligen var samma processor där delar blivit avaktiverade. Gick att låsa upp både det ena och det andra på många processorer tidigare. Nu bränner man ofta sönder delar av kretsarna med laser så att det inte ska gå att låsa upp.

Det billigaste för processortillverkarna verkar alltså tvärt om vara att inte skaffa dyr specialanpassad utrustning för varje processortyp utan att "gjuta många i samma" form för att sedan anpassa dem så att man får en bred produktportfölj.

Sedan tror jag det är rätt svårt att hitta bra källor kring detta. Troligen är det inte något tillverkarna skyltar med av diverse anledningar.
Det närmsta vi kommer är väl de många exempel på upplåsta processorer som var vanliga innan man började bränna delar av kretsarna för att förhindra sådant.

Fast du har fortfarande två fysiska register per kärna, har aldrig sagt att det finns fler kärnor bara för HT. Dock finns det som sagt fysiska register som består av Nand Switchar och Transistorer för att lagra just två olika köer.

Att kunna byta mellan två trådar kräver att man har två individuella register som inte delas på.

En processor med Hyperthreading, tex i7 3770K har antalet register dubblerade då varje kärna består av två stycken register istället för en enda. Även om det ser ut som åtta kärnor i Windows så delar varje kärna fortfarande på samma cache, branch-predictor och exekveringsenhet. Eftersom den delar på så många resurser så kommer fortfarande bara en tråd exekveras åt gången.

Visa signatur

 | PM:a Moderatorerna | Kontaktformuläret | Geeks Discord |
Testpilot, Skribent, Moderator & Geeks Gaming Huvudadmin

Permalänk
Hedersmedlem
Skrivet av DavidtheDoom:

Fast du har fortfarande två fysiska register per kärna, har aldrig sagt att det finns fler kärnor bara för HT. Dock finns det som sagt fysiska register som består av Nand Switchar och Transistorer för att lagra just två olika köer.

Att kunna byta mellan två trådar kräver att man har två individuella register som inte delas på.

En processor med Hyperthreading, tex i7 3770K har antalet register dubblerade då varje kärna består av två stycken register istället för en enda. Även om det ser ut som åtta kärnor i Windows så delar varje kärna fortfarande på samma cache, branch-predictor och exekveringsenhet. Eftersom den delar på så många resurser så kommer fortfarande bara en tråd exekveras åt gången.

Ja det har du rätt i. Jag var nog inte så tydlig med hela resonemanget här.
Anledningen till att jag tog upp den lilla skillnaden är att det inte är materialet som är dyrt i en processor. Så exakt vad som inkluderas när processorn tillverkas är inte så relevant tillverkningskostnadsmässigt så länge det inte påverkar kretsarean nämvärt. Och det lär inte HTtekniken göra.
Det som är dyrt är forskning och tillverknincsprocessen. Så det är inte alls otroligt att man väljer att lägga till fler funktioner och dedan strypa dessa om det ger färre produkttillverkningslinjer ocj därmed billigare produktion.
Så just därför tycker jag inte att det räcker med den logik du använde när du skrev varför i5 och i7 borde tillverkas på olika wafers.

Visa signatur

🎮 → Node 304 • Ryzen 5 2600 + Nh-D14 • Gainward RTX 2070 • 32GB DDR4 • MSI B450I Gaming Plus AC
🖥️ → Acer Nitro XV273K Pbmiipphzx • 🥽 → VR: Samsung HMD Odyssey+
🎧 → Steelseries arctic 7 2019
🖱️ → Logitech g603 | ⌨️ → Logitech MX Keys
💻 → Lenovo Yoga slim 7 pro 14" Oled

Permalänk
Trollfabrik 🫶🏻
Skrivet av DavidtheDoom:

Gillar att folk missar att i5 & i7 tillverkas på två olika wafers... De behöver inte kapa något som inte finns på wafern.

Möjligen att han hade ett es exemplar, speciellt då den var lappad.

Skickades från m.sweclockers.com

Det stämmer inte, Intel har inte så många olika kretskonfigurationer som man kan tro. Exempelvis är alla fyrkärniga Core i5/i7/Xeon för en given sockel (ex. LGA 1150) från Intel är i grunden samma kisel, där vissa delar stängts av – så dessa tillverkas på samma wafers. Jag vill minnas att påslaget för Hyperthreading areamässigt är runt ~5% per kärna med extra register och allt inräknat, vilket är försumbart när saker som cacheminne och grafikdel räknas in.

Samma sak gäller även Intels tvåkärniga varianter, där en Core i3 eller en Pentium/Celeron kan komma från samma wafer. Jag tror dock att det även finns en separat kretskonfiguration för Pentium/Celeron, eftersom dessa alltid har grafikdelen GT1 innebär det en relativt stor besparing. Nu minns jag inte det exakta antalet men för Haswell tror jag det rör sig om totalt åtta olika kretskonfigurationer, där Intel sedan kapar bort olika delar för att segmentera utbudet och skapa... på tok för många olika modeller.

Visa signatur

Kontaktas enklast via PM. Önskas svar i forumet citera mina inlägg eller pinga @Jacob. Finns även på Twitter.

"Science and technology have progressed to the point where what we build is only constrained by the limits of our own imaginations." – Justin R. Rattner

Permalänk
Moderator
Festpilot 2020, Antiallo
Skrivet av Jacob:

Det stämmer inte, Intel har inte så många olika kretskonfigurationer som man kan tro. Exempelvis är alla fyrkärniga Core i5/i7/Xeon för en given sockel (ex. LGA 1150) från Intel är i grunden samma kisel, där vissa delar stängts av – så dessa tillverkas på samma wafers. Jag vill minnas att påslaget för Hyperthreading areamässigt är runt ~5% per kärna med extra register och allt inräknat, vilket är försumbart när saker som cacheminne och grafikdel räknas in.

Samma sak gäller även Intels tvåkärniga varianter, där en Core i3 eller en Pentium/Celeron kan komma från samma wafer. Jag tror dock att det även finns en separat kretskonfiguration för Pentium/Celeron, eftersom dessa alltid har grafikdelen GT1 innebär det en relativt stor besparing. Nu minns jag inte det exakta antalet men för Haswell tror jag det rör sig om totalt åtta olika kretskonfigurationer, där Intel sedan kapar bort olika delar för att segmentera utbudet och skapa... på tok för många olika modeller.

Ja då får man väl tacka för informationen. Det jag hade hört var att intel hade 4olika wafers beroende på HT och antalet kärnor gällande Ivy Bridge men kanske är missinformerad.

Dock har jag svårt att tro fortfarande att man kan låsa upp en krets som är laserskuren eller inte är elektriskt kopplad till kretsen. Tror fortfarande om detta ens har hänt så är det ett ES exemplar som inte har laserskurits för att testa stabilitet.

Visa signatur

 | PM:a Moderatorerna | Kontaktformuläret | Geeks Discord |
Testpilot, Skribent, Moderator & Geeks Gaming Huvudadmin

Permalänk
Medlem

Detta är mycket intressant.
Finns det något uttalande från Intels sida om det här ännu?

Visa signatur

Citera för svar!

Permalänk
Medlem
Skrivet av Osprey:

Jag tror inte de kommer säga flasklock.

Eller kapsylhals... Om det finns i microcoden, vilket om det nu går att låsa upp, är ju att skjuta sig själv i foten rätt rejält. Det har ju varit så tidigare och knappast helt omöjligt att det är så även nu. Tillverkar du miljontals cpuer per månad(?), vill du hålla ned alla tillverkskostnader om det så är en halv cent. I slutändan blir det en stor påse pengar.

Visa signatur

..:: trickeh2k ::..
Windows 11 Pro - Ryzen 7 7800X3D - ASUS TUF B650-PLUS - Kingston FURY Beast DDR5 64GB CL36 - MSI MAG A850GL - MSI RTX 4080 VENTUS 3X OC - Acer Predator XB271HU - ASUS VG248QE - QPAD MK-85 (MX-Brown)/Logitech G PRO Wireless - Samsung 960 EVO 250GB, Samsung EVO 860 500GB, SanDisk Ultra II 480GB, Crucial MX500 1TB, Kingston KC3000 2TB - Steelseries Arctic 5 - Cooler Master Masterbox TD500 Mesh V2

Permalänk
Hedersmedlem
Skrivet av DavidtheDoom:

Dock har jag svårt att tro fortfarande att man kan låsa upp en krets som är laserskuren eller inte är elektriskt kopplad till kretsen. Tror fortfarande om detta ens har hänt så är det ett ES exemplar som inte har laserskurits för att testa stabilitet.

Ja du är inte direkt ensam om ifrågasättandet ;). Och det är väl sunt tycker jag. Men det finns en möjlig förklaring till detta om du läser inlägg 20 i denna tråd. Eller länken här:
#14691788

I korta drag:
En del funktioner är lätta att laserskära bort för de är placerade separat. Men HT är inte en separat del på kretsen utan ligger lite "här och där" troligen. Dyrt, komplicerat och riskabelt att skära bort. Billigare, snabbare och säkrare att kanske låsa HT på annat sätt. Det är ett möjligt alternativ. För vi vet inte hur HT är avstängt.

Men det är för tidigt att säga bu eller bä här. Framtiden får utvisa om det är en bluff eller sprängstoff för hemmaklockare.

Visa signatur

🎮 → Node 304 • Ryzen 5 2600 + Nh-D14 • Gainward RTX 2070 • 32GB DDR4 • MSI B450I Gaming Plus AC
🖥️ → Acer Nitro XV273K Pbmiipphzx • 🥽 → VR: Samsung HMD Odyssey+
🎧 → Steelseries arctic 7 2019
🖱️ → Logitech g603 | ⌨️ → Logitech MX Keys
💻 → Lenovo Yoga slim 7 pro 14" Oled

Permalänk
Medlem

Jag tror det är en effekt av ESD gone good!

Visa signatur

There are two kinds of people: 1. Those that can extrapolate from incomplete data.
Min tråkiga hemsida om mitt bygge och lite annat smått o gott: www.2x3m4u.net

Permalänk
Medlem
Skrivet av Svensktiger:

Har läst och står fast vid mina kommentarer.
Det är garanterat ingen vanlig 3570K utan troligen en 3770K.
Att den dessutom "råkar" vara lappad är ju väldigt behändigt för TS.

Om nånting verkar för bra att vara sant så är det oftast det

Tänk om alla skulle tänka som dig.. Hur mycket skulle då mänskligheten utvecklas? "Näe, om någon har lyckats göra något bättre än det redan är så är det fejk"-mentalliteten är så tråkig att se. Man kan vara öppen för nya idéer utan att behöva köpa allt med hår och hull.

Visa signatur

9900k | Z390 AORUS MASTER | 32GB RAM | Red Devil AMD Radeon™ RX 7900 XTX | XFX Black 1250W | BeQuiet Pure Base 500 | Fractal Design Celsius S36 | Samsung 970 500GB + Corsair MP510 960GB | Dell U3415W | Windows 11 Professional

Permalänk
Medlem
Skrivet av WoG:

Tänk om alla skulle tänka som dig.. Hur mycket skulle då mänskligheten utvecklas? "Näe, om någon har lyckats göra något bättre än det redan är så är det fejk"-mentalliteten är så tråkig att se. Man kan vara öppen för nya idéer utan att behöva köpa allt med hår och hull.

Visst, men spenderar man några år på nätet så lär man sig lite hälsosam skeptism

Det vore ju såklart kul om detta inte var avancerat trollande.
Eller om killen faktiskt har en helt vanlig 3570K som han på något magiskt sätt lyckats slå på HT på, trots att tusentals personer försökt göra samma sak i år.

Permalänk
Avstängd
Skrivet av DavidtheDoom:

Ja då får man väl tacka för informationen. Det jag hade hört var att intel hade 4olika wafers beroende på HT och antalet kärnor gällande Ivy Bridge men kanske är missinformerad.

Dock har jag svårt att tro fortfarande att man kan låsa upp en krets som är laserskuren eller inte är elektriskt kopplad till kretsen. Tror fortfarande om detta ens har hänt så är det ett ES exemplar som inte har laserskurits för att testa stabilitet.

Det skulle även kunna vara så enkelt att denna har undsluppit skärningen på just HT av någon anledning, kanske någon i fabriken har lyft på den för att visa någon och lagt den på något ställe och någon annan la den på bandet vid packningen. Jag tror inte att man kan använda ett crackat BIOS för att låsa upp dom iaf.

Permalänk
Hedersmedlem

Ta det lugnt nu allihop - Virtual Void kommer säkerligen snart och reder ut detta!

Permalänk
99:e percentilen
Skrivet av DavidtheDoom:

Hittar inte källan just nu men om du tänker rent logiskt, rent materialmässigt och yield gör det ekonomiskt ineffektivt att tillverka en wafer där alla har HT om man ändå ska inaktivera mer än hälften av dessa ändå.

Anledningen, enligt Intels Chief Marketing Engineer, till att de sedan Ivy Bridge inte löder fast IHS:en är att de då kan tillverka alla CPU:er, för desktop såväl som för laptop, av samma wafer: Man måste bestämma huruvida man ska löda fast IHS:en (desktop) eller använda kylpasta (laptop) innan man skär wafern i bitar, så om man väljer att använda kylpasta till alla CPU:er kan man använda samma wafer till både desktop- och laptop-CPU:er och därmed få en högre yield.

Så jag skulle gissa att 3570K och 3770K görs av samma wafer.

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Skrivet av widL:

Ta det lugnt nu allihop - Virtual Void kommer säkerligen snart och reder ut detta!

Det hoppas jag innerligen att han gör!

Visa signatur

-

Permalänk
Moderator
Festpilot 2020, Antiallo
Skrivet av Skuggan74:

Det skulle även kunna vara så enkelt att denna har undsluppit skärningen på just HT av någon anledning, kanske någon i fabriken har lyft på den för att visa någon och lagt den på något ställe och någon annan la den på bandet vid packningen. Jag tror inte att man kan använda ett crackat BIOS för att låsa upp dom iaf.

Elektronik som detta görs i cleanrooms cpu:en kommer åtminstone precis inte ha ihs:en monterad innan den x kommer ut ur flödet så att någon kan börja pilla på dem. Kan iof fungera.

Skickades från m.sweclockers.com

Visa signatur

 | PM:a Moderatorerna | Kontaktformuläret | Geeks Discord |
Testpilot, Skribent, Moderator & Geeks Gaming Huvudadmin

Permalänk
Avstängd
Skrivet av Alling:

Anledningen, enligt Intels Chief Marketing Engineer, till att de sedan Ivy Bridge inte löder fast IHS:en är att de då kan tillverka alla CPU:er, för desktop såväl som för laptop, av samma wafer: Man måste bestämma huruvida man ska löda fast IHS:en (desktop) eller använda kylpasta (laptop) innan man skär wafern i bitar, så om man väljer att använda kylpasta till alla CPU:er kan man använda samma wafer till både desktop- och laptop-CPU:er och därmed få en högre yield.

Så jag skulle gissa att 3570K och 3770K görs av samma wafer.

Alla Intels core i5- och i7-processorer (inkl. Xeon) ämnade för samma plattform (LGA1150, LGA1155, LGA2011 etc.) är från samma wafer då detta är det effektivaste sättet att genomföra tillverkningen vilket inte är svårt att förstå om ni tänker på saken. Det som skiljer dem åt är binning.

Visa signatur

Mitt vattenkylda system i väntan på bättre tider:
[CPU:]Intel i5 4690k - 4.9GHz @ 1.3V. [GPU:]CrossfireX R9 290X - 1150MHz/1500MHz [MB:] Asus ROG Maximus VII Ranger Z97 [RAM:] Corsair 2x8GB - CL9 2000 [SSD:] Samsung 840 EVO - 2x250GB [PSU:] NZXT Hale90 80+ Gold 1000W [Audio:]Asus Xonar Essence STX II 7.1 Monitor i väntan på 4K: 1440p X-Star - 120Hz

Permalänk
Datavetare
Skrivet av Jacob:

Det stämmer inte, Intel har inte så många olika kretskonfigurationer som man kan tro. Exempelvis är alla fyrkärniga Core i5/i7/Xeon för en given sockel (ex. LGA 1150) från Intel är i grunden samma kisel, där vissa delar stängts av – så dessa tillverkas på samma wafers. Jag vill minnas att påslaget för Hyperthreading areamässigt är runt ~5% per kärna med extra register och allt inräknat, vilket är försumbart när saker som cacheminne och grafikdel räknas in.

Samma sak gäller även Intels tvåkärniga varianter, där en Core i3 eller en Pentium/Celeron kan komma från samma wafer. Jag tror dock att det även finns en separat kretskonfiguration för Pentium/Celeron, eftersom dessa alltid har grafikdelen GT1 innebär det en relativt stor besparing. Nu minns jag inte det exakta antalet men för Haswell tror jag det rör sig om totalt åtta olika kretskonfigurationer, där Intel sedan kapar bort olika delar för att segmentera utbudet och skapa... på tok för många olika modeller.

Det var 5% för att implementera HT på P4, Intel har inte sagt något om hur mycket det kostar på modeller efter det, men rätt "safe" att gissa att det är mindre än 5% idag.

Ljuger denna person som denna tråd handlar om? Ingen aning, men det är inte helt orimligt att gissa att relativ antal transistorer som krävs för att implemntera HT är så lågt att Intel inte bryr sig om att tillverka olika kretsar för bara det. Däremot kanske det är så att i5or är de chip som inte riktigt passerar all validering för cache och HT.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem

På LinustechTips livestream sade en representant från Intel att de kan göra om I7:er till en I5:er på flera sätt och där bland att skära i processorn. Han sa att de händer att de göra detta om de behöver många I5:er.

Jag fortsätter titta på den livestreamen om de börjar prata om det här.

EDIT: Jag ställde en fråga om detta var möjligt i frågetråden på linustechtips forum men de hann aldrig till den så vi får hoppas på att det blir en fortsättning snart.

Visa signatur

Citera för svar!

Permalänk
Medlem

Riktigt tufft tycker jag

Permalänk
Medlem
Skrivet av simon253:

På LinustechTips livestream sade en representant från Intel att de kan göra om I7:er till en I5:er på flera sätt och där bland att skära i processorn. Han sa att de händer att de göra detta om de behöver många I5:er.

Jag fortsätter titta på den livestreamen om de börjar prata om det här.

EDIT: Jag ställde en fråga om detta var möjligt i frågetråden på linustechtips forum men de hann aldrig till den så vi får hoppas på att det blir en fortsättning snart.

Även om det var möjligt är det ju solklart att Intel skulle säga nej ändå

Visa signatur

..:: trickeh2k ::..
Windows 11 Pro - Ryzen 7 7800X3D - ASUS TUF B650-PLUS - Kingston FURY Beast DDR5 64GB CL36 - MSI MAG A850GL - MSI RTX 4080 VENTUS 3X OC - Acer Predator XB271HU - ASUS VG248QE - QPAD MK-85 (MX-Brown)/Logitech G PRO Wireless - Samsung 960 EVO 250GB, Samsung EVO 860 500GB, SanDisk Ultra II 480GB, Crucial MX500 1TB, Kingston KC3000 2TB - Steelseries Arctic 5 - Cooler Master Masterbox TD500 Mesh V2

Permalänk
Medlem
Skrivet av trickysaer:

Även om det var möjligt är det ju solklart att Intel skulle säga nej ändå

Ja det låter troligt men han var rätt ärlig när det kom till att Intel inte hade något att sätta emot i låg-budget segmentet och sa att det i princip var så att de fick rekommendera att gå till "konkurrenten". Innan de lanserade Pentium AE då.

Visa signatur

Citera för svar!

Permalänk
Avstängd

Sluta slösa på forumets krafter på ett troll skulle jag säga,detta blir bara mer och mer patetiskt hela tiden:-(

Visa signatur

FD refine S Msi x99s sli plus 5930k@4400mhz NH-D14 Asus GTX 980 Strix SLI 16gb gskill ripjaws ddr4 3ghz Os Samsung 950 pro 512gb NVME Spel samsung 840/850 evo/pro Win 10 Pro Corsair Ax850 Gold Asus PG278Q Rog Swift

Permalänk
Medlem

Det kanske är så enkelt att det de säger sig skära, är helt enkelt någon form av bygel som gör att processorn indikerar HT eller ej.

Skickades från m.sweclockers.com

Visa signatur

-- FubbHead

Permalänk
Medlem

Har inte läst igenom hela tråden som länkades till i första posten. Men varför inte köra ett benchmark som kan avgöra om HT är aktiverat eller inte. Det viktiga är väl hur det presterar och inte vad CPU-Z säger att det för CPU?

Visa signatur

Intel i7 860 @ 2,8 Ghz - Msi P55-GD65 - Corsair XMS3 DDR3 1600MHz 8 GB - 2 St XFX Radeon HD 5770 1GB - 2 St Crucial C300 64 Gb SSD - Fractal Design XL Black - Corsair TX 650W
Hp ProBook 4530s
iMac 20 tum från 2008
iPhone 3G 16 GB - iPhone 4 32 GB - iPhone 5 32 GB

Permalänk
Medlem
Skrivet av Kire6:

Har inte läst igenom hela tråden som länkades till i första posten. Men varför inte köra ett benchmark som kan avgöra om HT är aktiverat eller inte. Det viktiga är väl hur det presterar och inte vad CPU-Z säger att det för CPU?

Han kör ju benchmark också. Och den presterar som man kan förvänta sig av en i5 med HT, eller en i7 med bara 6Mb cache om du vill. Alltså så presterar den som en 4C/8T processor, men den är inte helt helt ifatt i7 eftersom den har lite mindre L3-cache fortfarande.

Permalänk
Medlem

Detta är vad han sysslar med än så länge han posta det för 6 timmar sedan.

What I have managed to do so far is examine the MADT of my own i5 chip. Now, here's what I found. The physical id's of the individual enabled cores are not sequential (This may be true of all i5's. Feel free to try this one at home. Fire up aida64, look at "ACPI" then "apic" or "madt"). 0, 2, 4, and 6 exist (only 4 ids), but the chip -reserves- 8 apic id's. This can be verified using the documented return values of the cpuid instruction, and comparing it to the raw values actually returned from the chip, and then comparing it to a dump of the ACPI tables.

I did another thing. I did some research, and found out that the memory address of the lapic (the local advanced programmable interrupt controller, ie: the part of the cpu that lets it communicate with other cpus and the chipset) of the bsp, or bootstrap processor (the one that executes all bios code) exists at address 0xfee00000 in memory. the icr (interrupt command register) exists with an offset of 0x300 from that location. The target of the icr can be set at 0x10 from there. This means that i can manually set a target, and manually fire an interrupt at that target, by poking those registers.

I executed the mm command to set the memory address 0xfee003010 to 0x01. this sets the target of the lapic to the physical address where the first deactivated hyperthreaded core should be. I then set memory address 0xfee00300 to 00 00 05 00. This is the "INIT IPI" Or in layman's terms, the command to start up. I then set it to 00 00 06 00. This is the command to start executing whatever is in its stack. Of course, nothing happened because the uefi firmware never gave it a stack, or anything to execute other than a loop full of nops. I tried it on the physical cpu's that were already initialized, and it did nothing [although the system worked flawlessly in the uefi shell (which is verified to use only one core), when an os tried to boot, it would go to turn on the cores that it knows are there, and are supposed to be doing absolutely nothing, find them executing already, and then freak out and kernel panic]. I tried it once more, with the address set to the bsp (0x00) and the system crashed. hard. So, it's entirely possible that the firmware explicitly disabled the interrupts on the lapic of the disabled cpus. Of course, that's going to bring me to my next point in a minute. I think it's more likely that it just had nothing to do at that point, didn't own any memory because the firmware already gave it to either the bsp or the other aps. AND basically nothing even knows that core exists, so it makes sense that kicking it on manually would do nothing to affect anything else. See in this case nothing is something, because if that was an invalid/remapped/random address, the system would have complained. Loudly. Instead, I got a fat load of nothing. See, on an i5 that says it only has 4 units, how can the firmware know that there are more? Answer: it can't. Not without probing them, and you DON'T probe the cpu like that. not even in firmware. The chance for something to go wrong, and corrupt all manner of things is very, very high. Much better to just identify the cpu using "cpuid" and set up everything around what it tells you.

So this brings me to where we stand right now. I'm 90% sure that i've -already- managed to kick on all 8 cpus of my i5. (By editing MMIO values of the BSP's LAPIC's ICR. By HAND) However, I have no way to verify that the cpus are executing without making them do something meaningful, which of course is not really possible in an OS which doesn't know or care they exist, or from a single threaded environment where the only thing i can really do is edit the BSP's local memory by hand. So, i'm going to have to do this a different way. My idea to force on the HT is to edit the uefi bios so that it reads an i5 as if it were an i7.

In order to do that, I set out to disassemble the routines in the uefi one at a time. And it's then that i discovered something very.. very.. interesting. According to the pei and dxe specs, most of the code in the pei and dxe routines are just functions that other routines can access and use. and when ripping them apart, i found a whole lot of that, but i didn't find the main routine that actually identifies and initializes the cpu's. I found many instructions for making the BSP do something and not really a whole lot concerning the AP's outside of the acpi table generator, which doesn't seem to do a lot of generating. I mean, I'm sure it does, but because of how pei and dxe work, there's not a lot of real code. just function calls. pei and dxe drivers... they're more like dll's and less like exe's, and very difficult to decipher.

What i DID find though was in the last place i looked, and the first place the cpu looks. The "Security Core". The very first piece of code to touch the cpu, which begins it's execution in real mode, and within 20 instructions or so, jumps into "protected mode" which allows for super fast boot times, fancy uefi shells, and... the ability to let me spot the protected-mode entry point in like 2 minutes. So, that means that the exact real-mode entry point, the first instruction to reach the cpu, should be very close. What this is going to do is let me know what the EXACT state of the processor's registers are at all times during execution. all of them. The stack, local memory, cache, absolute location of function calls and variables, everything! If i can follow the execution line by line (There's only a thousand, and the cpu has zero access to any ram at this point), and find out where it asks how many logical cpu's there are, I can adjust the offest by shl 0x1, to turn the "i have four" into an "i have eight". Then at that point the bios will do all the work for me! (unless the CPUs are physically disabled, which we know they aren't).

This is really playing with fire. It's analogous to poking your hypothalamus with a stick. if I make an edit and mess it up, I will truly brick a board beyond recovery. I may order some extra bios chips just in case.

For all you out there who can follow this post, I would appreciate some feedback, or especially some assistance if anyone has the uefi hacking skills to help me get this done.

Dold text
Permalänk
Moderator
Festpilot 2020, Antiallo
Skrivet av dumbaZ:

Detta är vad han sysslar med än så länge han posta det för 6 timmar sedan.

What I have managed to do so far is examine the MADT of my own i5 chip. Now, here's what I found. The physical id's of the individual enabled cores are not sequential (This may be true of all i5's. Feel free to try this one at home. Fire up aida64, look at "ACPI" then "apic" or "madt"). 0, 2, 4, and 6 exist (only 4 ids), but the chip -reserves- 8 apic id's. This can be verified using the documented return values of the cpuid instruction, and comparing it to the raw values actually returned from the chip, and then comparing it to a dump of the ACPI tables.

I did another thing. I did some research, and found out that the memory address of the lapic (the local advanced programmable interrupt controller, ie: the part of the cpu that lets it communicate with other cpus and the chipset) of the bsp, or bootstrap processor (the one that executes all bios code) exists at address 0xfee00000 in memory. the icr (interrupt command register) exists with an offset of 0x300 from that location. The target of the icr can be set at 0x10 from there. This means that i can manually set a target, and manually fire an interrupt at that target, by poking those registers.

I executed the mm command to set the memory address 0xfee003010 to 0x01. this sets the target of the lapic to the physical address where the first deactivated hyperthreaded core should be. I then set memory address 0xfee00300 to 00 00 05 00. This is the "INIT IPI" Or in layman's terms, the command to start up. I then set it to 00 00 06 00. This is the command to start executing whatever is in its stack. Of course, nothing happened because the uefi firmware never gave it a stack, or anything to execute other than a loop full of nops. I tried it on the physical cpu's that were already initialized, and it did nothing [although the system worked flawlessly in the uefi shell (which is verified to use only one core), when an os tried to boot, it would go to turn on the cores that it knows are there, and are supposed to be doing absolutely nothing, find them executing already, and then freak out and kernel panic]. I tried it once more, with the address set to the bsp (0x00) and the system crashed. hard. So, it's entirely possible that the firmware explicitly disabled the interrupts on the lapic of the disabled cpus. Of course, that's going to bring me to my next point in a minute. I think it's more likely that it just had nothing to do at that point, didn't own any memory because the firmware already gave it to either the bsp or the other aps. AND basically nothing even knows that core exists, so it makes sense that kicking it on manually would do nothing to affect anything else. See in this case nothing is something, because if that was an invalid/remapped/random address, the system would have complained. Loudly. Instead, I got a fat load of nothing. See, on an i5 that says it only has 4 units, how can the firmware know that there are more? Answer: it can't. Not without probing them, and you DON'T probe the cpu like that. not even in firmware. The chance for something to go wrong, and corrupt all manner of things is very, very high. Much better to just identify the cpu using "cpuid" and set up everything around what it tells you.

So this brings me to where we stand right now. I'm 90% sure that i've -already- managed to kick on all 8 cpus of my i5. (By editing MMIO values of the BSP's LAPIC's ICR. By HAND) However, I have no way to verify that the cpus are executing without making them do something meaningful, which of course is not really possible in an OS which doesn't know or care they exist, or from a single threaded environment where the only thing i can really do is edit the BSP's local memory by hand. So, i'm going to have to do this a different way. My idea to force on the HT is to edit the uefi bios so that it reads an i5 as if it were an i7.

In order to do that, I set out to disassemble the routines in the uefi one at a time. And it's then that i discovered something very.. very.. interesting. According to the pei and dxe specs, most of the code in the pei and dxe routines are just functions that other routines can access and use. and when ripping them apart, i found a whole lot of that, but i didn't find the main routine that actually identifies and initializes the cpu's. I found many instructions for making the BSP do something and not really a whole lot concerning the AP's outside of the acpi table generator, which doesn't seem to do a lot of generating. I mean, I'm sure it does, but because of how pei and dxe work, there's not a lot of real code. just function calls. pei and dxe drivers... they're more like dll's and less like exe's, and very difficult to decipher.

What i DID find though was in the last place i looked, and the first place the cpu looks. The "Security Core". The very first piece of code to touch the cpu, which begins it's execution in real mode, and within 20 instructions or so, jumps into "protected mode" which allows for super fast boot times, fancy uefi shells, and... the ability to let me spot the protected-mode entry point in like 2 minutes. So, that means that the exact real-mode entry point, the first instruction to reach the cpu, should be very close. What this is going to do is let me know what the EXACT state of the processor's registers are at all times during execution. all of them. The stack, local memory, cache, absolute location of function calls and variables, everything! If i can follow the execution line by line (There's only a thousand, and the cpu has zero access to any ram at this point), and find out where it asks how many logical cpu's there are, I can adjust the offest by shl 0x1, to turn the "i have four" into an "i have eight". Then at that point the bios will do all the work for me! (unless the CPUs are physically disabled, which we know they aren't).

This is really playing with fire. It's analogous to poking your hypothalamus with a stick. if I make an edit and mess it up, I will truly brick a board beyond recovery. I may order some extra bios chips just in case.

For all you out there who can follow this post, I would appreciate some feedback, or especially some assistance if anyone has the uefi hacking skills to help me get this done.

Dold text

Hmm, imponerande om han lyckas. Kommer dock kvarstå problemet att alla UEFI inte är likadana om än dock väldigt lika på samma chipset.

Visa signatur

 | PM:a Moderatorerna | Kontaktformuläret | Geeks Discord |
Testpilot, Skribent, Moderator & Geeks Gaming Huvudadmin

Permalänk
Medlem
Skrivet av jonas1972:

Sluta slösa på forumets krafter på ett troll skulle jag säga,detta blir bara mer och mer patetiskt hela tiden:-(

Att slösa på forumets krafter är snarare att svara på alla "bästa datan för 5K"-trådar. Det kommer nya varje dag för att ingen orkar läsa de äldre trådarna.
Det här är intressant och vem vill inte få en gratis uppgradering?

Visa signatur

Citera för svar!

Permalänk
Medlem

Väcker liv i en gammal tråd.

Någon som vet hur detta utecklat sig?

Visa signatur

GPU: Sapphire 5700 XT CPU: i9 10850K @ 5 GHz med NH-D15 RAM: 32 GB Vengeance @ 3600 MHz PSU: eVGA Supernova 750 G3 Chassi: Define R5 Moderkort: Asus Strix Z490-F Lagring: 970 EVO 500 GB och 840 EVO 250 GB Skärm: Asus TUF VG259Q, PHILIPS Brilliance 230C, Samsung U28E590
Äldre grejer: 4790K, i7 920, Athlon 3800+ X2, 290X Crossfire, 560 Ti Sli, 560 Ti 448 cores, 8800 GT Sli.
Laptop:  MacBook Pro 13" mid 2014 

Permalänk
Medlem

detta är ren BS detta för första på cpu-z bilden lägst uppe står det Core i7 3770 och sedan i mitten core i5 3570K hmm.. sedan finns ingen cpu på luft som kan nå 4,5ghz med 1,08vCore eller screenshoten på 5ghz med knappt 1,2v

killen kan trolla ja det vet nog dom mesta

jag har markerat med svart så ni ser den bilden är fejk Ok ?

LOL !!

Visa signatur

[Intel Core i9@13900KF Raptor Lake@5,5Ghz Oc][Asus ROG Z790 HERO[G-Skill RGB 32GB 6600Mhz cL34][WD Back 2TB NvMe][2TB Samsung 970 Evo + 2x8Tb Samsung 870 Qvo spel disk][Msi RTX 4090 Gaming Trio-X][ASUS ROG Swift OLED PG48UQ][Windows 11][1000/1000Mbits Telia fiber][Razer Ornata Tangentbord.